반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # -*- coding: cp949 -*- import optparse from socket import * from threading import * screenLock = Semaphore(value=1) def connScan(tgtHost, tgtPort): try: connSkt = socket(AF_INET, SOCK_STREAM) connSkt.connect(tgtHost, tgtPort) connSkt.send('ViolentPython\r\n') results = connSkt.recv(100) screenLock.acquire() # 출력하기 전에 세마포어 습득 print '[+]%d/tcp open'% tgtPort print '[+] ' +str(results) except: screenLock.acquire() # 출력하기 전에 세마포어 습득 print '[-]%d/tcp closed'% tgtPort finally: screenLock.release() # 쓰레드가 끝날 때 놓아줌 connSkt.close() def portScan(tgtHost, tgtPorts): try: tgtIP = gethostbyname(tgtHost) except: print "[-] Cannot resolve '%s': Unknown host" %tgtHost return try: tgtName = gethostbyaddr(tgtIP) print '\n[+] Scan Results for: ' + tgtName[0] except: print '\n[+] Scan Results for: ' + tgtIP setdefaulttimeout(1) for tgtPort in tgtPorts: t = Thread(target=connScan, args=(tgtHost, int(tgtPort))) t.start() def main(): parser = optparse.OptionParser('usage %prog -H <target host> -p <target port>') parser.add_option('-H', dest='tgtHost', type='string', help='specify target host') parser.add_option('-p', dest='tgtPort', type='int', help='specify target port[s] separated by comma') (options, args) = parser.parse_args() tgtHost = options.tgtHost tgtPort = str(options.tgtPort).split(', ') if (tgtHost == None) | (tgtPort == None): print '[-] You must specify a target host and port[s].' exit(0) portScan(tgtHost, tgtPorts) if __name__ == '__main__': main() | cs |
출처 : Violent Python ( 해커의 언어, 치명적 파이썬)
반응형
'Develope > Python' 카테고리의 다른 글
Python code to create Numeric list (0) | 2019.12.26 |
---|---|
[Python] frida 설치 및 에러 해결 (0) | 2019.01.03 |
[Python] Edit with IDLE가 안될 때 (2) | 2017.01.21 |
[Python] 간단한 파이썬 취약점 스캐닝 스크립트 (0) | 2016.10.29 |
[Python] 내장함수 (0) | 2014.10.28 |