Thursday, 3 March 2011

Creating wordlists based on dates


wordlists based on dates
======================


Update 5
24-06-2012
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
DOWNLOAD;
http://www.mediafire.com/file/wj1ncopb4cruhai/datelist_v0-7

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






Update 3
02-04-2011
==========

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 ; 
http://blip.tv/file/4969508


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)
read START_DATE
(tput sgr 0)
echo "Enter the ending date"
echo "must be in the format yyyy-mm-dd"
(tput bold && tput setaf 1)
read END_DATE
(tput sgr 0)
# List all dates in between the chosen dates in the format ddmmyyyy
echo $START_DATE | tee r_dates.txt
while true
do
START_DATE=$( date +%Y-%m-%d -d "$START_DATE -d 1day" )
echo $START_DATE | tee -a r_dates.txt
if [ "$START_DATE" == "$END_DATE" ]
then
awk -F- '{print $3 $2 $1}' r_dates.txt > datelist.txt
rm r_dates.txt
echo
(tput setaf 2 && tput bold)
echo "wordlist 'datelist.txt' created in the format ;"
echo
(tput setaf 6 && tput bold)
head -5 datelist.txt
(tput sgr 0)
echo ""
exit
fi
done

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);

./datelist




















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.






















APPENDING OR PREPENDING SEQUENTIAL NUMBERS

 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) 

http://blip.tv/file/4842595
or
http://www.youtube.com/watch?v=FEXbxbjh-eU

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

46 comments:

  1. Fine, thank you tape.

    ReplyDelete
  2. YOU AND UR POSTS ARE THE BEST OF INTERNET MAN THANKS A LOT :)

    ReplyDelete
  3. :D

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

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

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

    ReplyDelete
  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.

    ReplyDelete
  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 ;)

    ReplyDelete
  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 !

    ~w4r3zh4ck

    ReplyDelete
  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...
    http://en.wikipedia.org/wiki/Year_2038_problem

    ReplyDelete
  10. oh okay, thanks !

    ReplyDelete
  11. 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.

    ReplyDelete
  12. i will try from 1935

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

    thanks guy .

    ReplyDelete
  14. 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.

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

    ReplyDelete
  16. Finally I see your blog.

    Just subscribed.

    ReplyDelete
  17. This comment has been removed by a blog administrator.

    ReplyDelete
  18. Dont link to untested / untrusted exe files..

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

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

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

      What exactly are you looking to do ?

      Delete
    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).

      Delete
    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/'
      etc
      etc

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

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

      Delete
    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 ;-)

      Delete
    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 ;)

      Delete
    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 !

      Delete
    9. Do you have Skype or something like that?

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

      Delete
    11. Here it is: https://sourceforge.net/projects/languagechanger/

      Delete
    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.

      Delete
    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 !

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

    ReplyDelete
  22. 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.

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

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

    ReplyDelete
    Replies
    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)

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

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

      Delete
  25. 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.

    ReplyDelete