python cheatsheet
python visualize 파이썬 웹 시뮬레이터 입니다. 파이썬 실행될 때 구조를 visualize 하는데 재미있네요 http://www.pythontutor.com/visualize.html
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. [구매하기] 빠르게 활용하는 파이썬 3.2 프로그래밍 – 1장 파이썬 개요 및 설치, 2장 자료형 및 연산자 빠르게 활용하는 파이썬 3.2 프로그래밍 – 3장 함수 빠르게 활용하는 파이썬 3.2 프로그래밍 … Continue reading
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. [구매하기] 빠르게 활용하는 파이썬 3.2 프로그래밍 – 1장 파이썬 개요 및 설치, 2장 자료형 및 연산자 빠르게 활용하는 파이썬 3.2 프로그래밍 – 3장 함수 빠르게 활용하는 파이썬 3.2 프로그래밍 … Continue reading
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. [구매하기] 빠르게 활용하는 파이썬 3.2 프로그래밍 – 1장 파이썬 개요 및 설치, 2장 자료형 및 연산자 빠르게 활용하는 파이썬 3.2 프로그래밍 – 3장 함수 빠르게 활용하는 파이썬 3.2 프로그래밍 … Continue reading
Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다. 연구목적으로 사용하지 않고 악의적인 목적으로 이용할 경우 발생할 수 있는 법적은 책임은 모두 본인에게 있습니다. python을 이용한 port scan 소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from socket import * rhost = raw_input("host:") fromport = int(raw_input("from port:")) toport = int(raw_input("to port:")) print "scan start" for i in range(fromport, toport): s = socket(AF_INET, SOCK_STREAM) if s.connect_ex((rhost, i)) == 0: print i, "is open" s.close() print "scan finish" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# A simple Port Scanner import sys,socket if len(sys.argv) <4: print "\n\nusgae: ./portscan.py <host> <startport> <end port>" print "\n Example: portscan.py www.domain.com 1 1000" sys.exit(0) host=sys.argv[1] start=sys.argv[2] end =sys.argv[3] for port in range (int(start),int(end)): try: #print "\n[-] Scanning port",port s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(5) s.connect((socket.gethostbyname(host), int(port))) print "\n Found Open Port ",port s.close() except: pass |
[구매하기] 간만에 좋은책을 읽었다. 코드 리딩 및 코드까지 실행해보면서 읽지는 않았지만, 크게 이슈가 됬었던 보안사고의 기법을 설명해주고, 해당기법을 python으로 구현해보는 방식으로 책은 구성되어있다. 개인적으로는 침투 테스트와 포렌식, 정보수집 부분이 인상깊었다. 그리고 python 언어를 사용하는 입장에서 python 라이브러리의 강력함을 다시 … Continue reading
scapy를 이용한 network 패킷 분석 에 이어서 scapy를 이용한 http network 패킷 분석 프로그램을 만들어보았다. 우선은 sniffing 하지 않고 그냥 pcap 파일을 읽어서 하는 방식으로 작업했다. (PacketInside.com 의 Examples 을 입맛에 맞게 수정했다.) pcap의 파일에서 200개의 패킷을 읽어서 http의 … Continue reading
네트워크 패킷에서 HTTP 의 request와 response 의 header 정보를 추출해야 하는 일이 생겼다. 그래서 패킷 분석 프로그램을 찾아보던 중 python의 scapy를 알게 되었다. 그래서, 바로 설치~
1 |
]$ sudo apt-get install python-scapy |
우분투 장비라서 apt-get으로 간단하게 설치 scapy의 실행 및 환경보기
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
]$ sudo scapy INFO: Can't import python gnuplot wrapper . Won't be able to plot. INFO: Can't import PyX. Won't be able to use psdump() or pdfdump(). WARNING: No route found for IPv6 destination :: (no default route?) Welcome to Scapy (2.1.0) >>> conf ASN1_default_codec = <ASN1Codec BER[1]> AS_resolver = <scapy.as_resolvers.AS_resolver_multi instance at 0x2476758> BTsocket = <BluetoothL2CAPSocket: read/write packets on a connected L2CAP ... L2listen = <L2ListenSocket: read packets at layer 2 using Linux PF_PACKET ... L2socket = <L2Socket: read/write packets at layer 2 using Linux PF_PACKET ... L3socket = <L3PacketSocket: read/write packets at layer 3 using Linux PF_P... auto_fragment = 1 checkIPID = 0 checkIPaddr = 1 checkIPsrc = 1 check_TCPerror_seqack = 0 color_theme = <DefaultTheme> commands = arpcachepoison : Poison target's cache with (your MAC,victim's ... debug_dissector = 0 debug_match = 0 default_l2 = <class 'scapy.packet.Raw'> emph = <Emphasize []> ethertypes = </etc/ethertypes/ > except_filter = '' extensions_paths = '.' histfile = '/home/apollo89/.scapy_history' iface = 'eth0' iface6 = 'lo' interactive = True ipv6_enabled = True l2types = 0x1 <- Dot3 (802.3) 0x1 <-> Ether (Ethernet) 0xc -> IP (IP) 0x1... l3types = 0x3 -> IP (IP) 0x800 <-> IP (IP) 0x806 <-> ARP (ARP) 0x86dd <->... layers = Packet : None NoPayload : None Raw : Raw Padding : Padding ASN1... load_layers = ['l2', 'inet', 'dhcp', 'dns', 'dot11', 'gprs', 'hsrp', 'inet6'... logLevel = 20 manufdb = </usr/share/wireshark/wireshark/manuf/ > mib = <MIB/ > neighbor = Dot3 -> IP Ether -> IP Ether -> Dot1Q Ether -> ARP Ether -> IPv... netcache = arp_cache: 0 valid items. Timeout=120s in6_neighbor: 0 valid it... noenum = <Resolve []> padding = 1 prog = display = 'display' dot = 'dot' hexedit = 'hexer' pdfreader = '... promisc = 1 prompt = '>>> ' protocols = </etc/protocols/ pim ip ax_25 esp tcp ah mpls_in_ip rohc ipv6_o... raw_layer = <class 'scapy.packet.Raw'> raw_summary = False readfunc = None resolve = <Resolve []> route = Network Netmask Gateway Iface Output IP 127.0.0.0 255.0.0.0 0.0... route6 = Destination Next Hop iface src candidates fe80::/64 :: eth0 fe8... services_tcp = </etc/services-tcp/ kpop zabbix_trapper noclog svn cmip_man b... services_udp = </etc/services-udp/ zabbix_trapper noclog cmip_man z3950 root... session = '' sniff_promisc = 1 stats_classic_protocols = [<class 'scapy.layers.inet.TCP'>, <class 'scapy.la... stats_dot11_protocols = [<class 'scapy.layers.inet.TCP'>, <class 'scapy.laye... stealth = 'not implemented' temp_files = [] teredoPrefix = '2001::' teredoServerPort = 3544 use_dnet = False use_pcap = False verb = 2 version = '2.1.0' warning_threshold = 5 wepkey = '' >>> |
scapy으로 sniffing … Continue reading
python week number 와 week number 의 날짜 구하기. 1. week number 구하기.
1 2 3 4 5 6 7 8 |
>>> from datetime import datetime >>> dt = datetime.now() >>> dt datetime.datetime(2013, 2, 25, 14, 49, 53, 870916) >>> weeknumber = dt.isocalendar()[1] >>> weeknumber 9 >>> |
2. week number 의 포함된 날짜들 구하기.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
>>> from datetime import date, timedelta, datetime >>> >>> def weekBoundaries(year, week): ... startOfYear = date(year, 1, 1) ... now = startOfYear + timedelta(weeks=week-1) ... sun = now - timedelta(days=now.isoweekday() % 7) ... weekdays = list() ... weekdays.append(sun.strftime("%Y%m%d")) ... weekdays.append((sun + timedelta(days=1)).strftime("%Y%m%d")) ... weekdays.append((sun + timedelta(days=2)).strftime("%Y%m%d")) ... weekdays.append((sun + timedelta(days=3)).strftime("%Y%m%d")) ... weekdays.append((sun + timedelta(days=4)).strftime("%Y%m%d")) ... weekdays.append((sun + timedelta(days=5)).strftime("%Y%m%d")) ... weekdays.append((sun + timedelta(days=6)).strftime("%Y%m%d")) ... return weekdays ... >>> dt = datetime.now() >>> year = dt.year >>> week = dt.isocalendar()[1] >>> weekdays = weekBoundaries(year, week) >>> weekdays ['20130224', '20130225', '20130226', '20130227', '20130228', '20130301', '20130302'] >>> |
참고 : http://bytes.com/topic/python/answers/499819-getting-start-end-dates-given-week-number