Thursday, 3 March 2011

Creating wordlists based on dates

wordlists based on dates

Update 5
Have released datelist v0.7
- Fixed bug with February being excluded from whole century years
  (was a bug in leapyear calculations) -- Thanks to stepking2
- Fixed bug with July being omitted from results --Thanks to stepking2
- Included options to prepend or append word/character direct from command line

Have now released datelist v0.6
- Not limited to any dates anymore (yay !)
- Much faster
- Included more error checks
- Totally awesome ;)

Update 3

So have completed the work on v0.4, vid & download location herebelow.
Its still slow and limited to 1902 -- 2037 dates, but seems a bit better 
(to look at at least :) ) 
Until I get to grips with Python or Perl enabling me to massively increase the speed
it will probably stay as it is now.
edit 01-05-2010;
Gitsnik put his mind to it (probably whilst reading the paper on the john, things come easier to him ;) )
and wrote a fantastic bit of perl that does it sooo much faster and without any date limitations, when I manage
to replicate that will put it up as well.

Or on bliptv ;

Update 2
Am working on v0.4 to be able to do the same directly from command line, should be less
invasive on the eyes for the command line freaks and hopefully a tad quicker.

Update 1

Put up a quick video on a revision;  datelist_v0.3


I occasionally get queries on how to create certain wordlists with crunch, for which in some cases
crunch is not really suited.
This is the case when dealing with dates for instance.

I had asked bofh28 (author of crunch) whether he felt that this was something to consider for inclusion
in crunch, however he did not feel this was within the  scope of what crunch is intended for and of course
he's right, crunch's scope is meant to create a true bruteforce list.

So, after having had a few queries on it, I dabbled a bit in how this could be done.

After quite a bit of brain teasing (I am a slow learner ;) ) I got a date list in the format ddmmyyyy with the following code ;
>copy/paste the below code and save as for instance date-test
>make executable with: chmod 755 date-test to allow to run it; ./date-test

#!/bin/bash -e
#Starting and stopping dates
echo "Enter the starting date"
echo "must be in the format yyyy-mm-dd"
(tput bold && tput setaf 1)
(tput sgr 0)
echo "Enter the ending date"
echo "must be in the format yyyy-mm-dd"
(tput bold && tput setaf 1)
(tput sgr 0)
# List all dates in between the chosen dates in the format ddmmyyyy
echo $START_DATE | tee r_dates.txt
while true
START_DATE=$( date +%Y-%m-%d -d "$START_DATE -d 1day" )
echo $START_DATE | tee -a r_dates.txt
if [ "$START_DATE" == "$END_DATE" ]
awk -F- '{print $3 $2 $1}' r_dates.txt > datelist.txt
rm r_dates.txt
(tput setaf 2 && tput bold)
echo "wordlist 'datelist.txt' created in the format ;"
(tput setaf 6 && tput bold)
head -5 datelist.txt
(tput sgr 0)
echo ""

Not an easy few lines for me to remember.. at least for me..
So after having done that, there was some desire to be able to change the output format to other formats,
we each have our own preference !

Going through it a bit more and trying to improve it I came up with datelist v0.2
Now I am sure there must be easier ways to accomplish the same thing.. but it just simply escaped me..

Basically a pretty untidy mess code-wise, but it seems to more or less do the trick.

Following a query on how to make a certain wordlist, I also included a possibility
to either prepend or append additional numbers (max 5) to the created wordlist.
I am not sure that the way it is done is the most effective and will probably re-visit that part.

If anyone feels like having a shot at trying it out, you can download it here;
Edit 23-12-2011
All previous versions superceded by v0.6, see download link at top of page.

Starting it up (of course use filename that is appropriate for the download you have done);


Starting with format option -1 used and entering the Start and End dates ;

./datelist -1

Starting ..

Upon completion of the creation of datelist.txt, the 1st 5 lines of the created file will be shown to confirm
the output format.


 I also included a method of appending or prepending upto 5 sequential numeric values(0-9) to the created datelist.txt file.
Not quite sure how useful this is or to whom.. not really for me, but hey, the question came up ;)

This can be done with the -a (append) or -p (prepend) after having created the datelist.txt file.

Appending 2 numeric characters sequentially with the -a switch and showing the result by showing the last
5 lines of the file.

./datelist -a

Prepending 2 numeric characters sequentially with the -p switch and showing the result by showing the last
5 lines of the file.

./datelist -p

Again, this is all just a bit of fun and most likely ludicrously funny to anyone able to really write,
but who knows it may be of use to someone ;)

Video showing the use of datelist (v0.3)

Dont be shy on commenting if its any help or simply worthless :D


  1. Fine, thank you tape.


  3. :D

    That may be pushing it a little far.. ;)
    but thanks for the comment !

  4. How would you append every date in date-list to every date in date-list ?

  5. Why doesn't the -1 option return the correct format ?

  6. @ highjinks
    You will have to give me a better idea of what you want to accomplish as the result seems a bit redundant..

    @ Anonymous
    Don't look at the output you see on the screen during the creation of the list, check out the created datelist.txt (or verify by checking the 1st and last 3 lines as shown on screen after datelist.txt is created.

    The -1 option works fine as far as I can see.

  7. When I first started datelist, some dates would give an error, so I wanted to see where that happened..

    So I 'tee' the output of the date creation to screen as per the format that you have to enter to have something to look at basically ;)

  8. First of, you got a nice blog with interesting stuff.
    Second, let's get to datelist. There is a bug which I would like to be fixed.
    Let's say I select the first option in the menu like yyyy-mm-dd or something like that and I type: 1900-01-01 (end date: 2050-12-31) It gives me some kind of error. Please fix it. Thank you !


  9. Hey w4r3zh4ck,

    It seems you didnt fully read the information provided in the program when using the 'version' / more info switch.

    The program 'date' on which datelist is based will not work for dates after 2038...

  10. Also starting from 1900-01-01 is also not going to work.. there are limitations, but just do a few tests on different dates close to what you want and am sure you will get there.

  11. hello tape .
    your site az very excellent .
    please write a full papaer about dos attack on wifi network .

    thanks guy .

  12. Too lazy to email this TAPE, but that perl code I flicked you a few days ago should do the date from 1900-01-01 to 2050-12-31 thing just fine.

  13. @Anonymous
    Yes this is possible.
    Search for a program called WiPhire and execute it. select the sixth option in the menu.
    Happy DoSing !

  14. Finally I see your blog.

    Just subscribed.

  15. This comment has been removed by a blog administrator.

  16. Dont link to untested / untrusted exe files..

  17. Ahhahahaha sitting on the couch for about half an hour actually. You didn't need to creds me though TAPE you know that!

  18. Is there a way to change language on the wordified months and dates?

    1. You could probably use awk/sed to replace the days/months with words instead of numbers.

      What exactly are you looking to do ?

    2. When I want to wordify a date, instead of it being in English, I want it to be in Norwegian.
      So instead of it saying "13th january", it should say "13. januar" (Norwegian).

    3. To be honest, its probably easier to make the list the way you want it to start with ;)
      I was going to try to include an option for 'long' dates like this in datelist, I might have a look at that later.

      Otherwise you could use sed to replace the English words with Norwegian words.
      cat datelist.txt | sed -e 's/January/januar/' -e 's/February/februar/' -e 's/March/mars/'

    4. Thanks alot TAPE! Now I can make a script to automaticly do that after making a list ;-)

    5. I can send it to you if you want to test it :-)

    6. I found a bug in your tool, the datelists excludes july month, and february the first year.

      I'm finished with the tool, added 10 languages. Just need to do some more testing ;-)

    7. Really ?! Crap ! thanks for the feedback !
      I will have a look and see what is going wrong then..

      Look forward to seeing what you got going ;)

    8. I found the error that caused the month of July to be excluded,
      missing a "0" in a the area where days are added to months.. DOH !

      Still trying to figure out what is going wrong with February in the first year..

      Thanks for your bug report !

    9. Do you have Skype or something like that?

    10. Well you can find my email in the help section of datelist

    11. Here it is:

    12. Hey stepking2,

      Good to see you trying stuff out ;)
      Of course at the moment my datelist does not create any lists
      with ful month names, so it cant really work on the lists datelist creates yet.

    13. The errors on missing February in datelist is to do with the leapyear calculation for years at beginning of century (1700 / 1800 / 1900 etc)
      am working on that, thanks !

  19. Okey, I use your tool through thad0ctor's wordlist toolkit, so that might be.

  20. Hi,tape!I tried to use Datelist V0.7 but i receive error ---- line571: usr/bin/seq Input/output error. I use Back Track 5r3.

    1. I just downloaded from the above link and ran the script on
      a VMware version of BackTrack5R3 without any problems...

  21. I running my BackTrack5r5 from USB.Its GNOME version.I tried many times to run datelist but error is always same.

    1. You are the only one to report this problem...

      I have not experienced this problem but have only run in VMs / Full Installs.

      I suggest you test this out on either a full install or vmware version and let me know how you fare as I cannot replicate this issue..
      (you should be able to test this script on other linux distros as well)

  22. I want to generate 10 numeric - yymmdd%%%%.With Crunch is not posible.

    1. Well its a shame, datelist does exactly what you want.. get it running ! ;)

  23. I have done a bit of googling on the input/output error messages
    and there are a few possibilities.
    AMong which, it is possible that your usb install is failing. (corrupted sectors)

    Try making a new bootable USB drive and trying again.


Google Analytics Alternative