首页 » 网站建设 » php剧本小子技巧_Python大年夜法之拜别脚本小子系列信息资产收集类脚本编写附源码

php剧本小子技巧_Python大年夜法之拜别脚本小子系列信息资产收集类脚本编写附源码

访客 2024-12-02 0

扫一扫用手机浏览

文章目录 [+]

序言

在采集到URL之后,要做的便是对目标进行信息资产网络了,网络的越好,你挖到洞也就越多了............当然这统统的条件,便是要有耐心了!


由于要写工具较多,SO,我会分两部分写......

php剧本小子技巧_Python大年夜法之拜别脚本小子系列信息资产收集类脚本编写附源码

端口扫描脚本编写

php剧本小子技巧_Python大年夜法之拜别脚本小子系列信息资产收集类脚本编写附源码
(图片来自网络侵删)

端口扫描的事理:

端口扫描,顾名思义,便是逐个对一段端口或指定的端口进行扫描。
通过扫描结果可以知道一台打算机上都供应了哪些做事,然后就可以通过所供应的这些做事的己知漏洞就可进行攻击。
其事理是当一个主机向远端一个做事器的某一个端口提出建立一个连接的要求,如果对方有此项做事,就会应答,如果对方未安装此项做事时,纵然你向相应的端口发出要求,对方仍无应答,利用这个事理,如果对所有熟知端口或自己选定的某个范围内的熟知端口分别建立连接,并记录下远端做事器所给予的应答,通过查看一记录就可以知道目标做事器上都安装了哪些做事,这便是端口扫描,通过端口扫描,就可以搜集到很多关于目标主机的各种很有参考代价的信息。
例如,对方是否供应FPT做事、WWW做事或其它做事。

代理做事器还有很多常用的端口

比如HTTP协议常用的便是:80/8080/3128/8081/9080,FTP协议常用的便是:21,Telnet协议常用的是23等等

来个较全的...

代理做事器常用以下端口:

⑴. HTTP协议代理做事器常用端口号:80/8080/3128/8081/9080

⑵. SOCKS代理协议做事器常用端口号:1080

⑶. FTP(文件传输)协议代理做事器常用端口号:21

⑷. Telnet(远程登录)协议代理做事器常用端口:23

HTTP做事器,默认的端口号为80/tcp(木马Executor开放此端口);

HTTPS(securely transferring web pages)做事器,默认的端口号为443/tcp 443/udp;

Telnet(不屈安的文本传送),默认端口号为23/tcp(木马Tiny Telnet Server所开放的端口);

FTP,默认的端口号为21/tcp(木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口);

TFTP(Trivial File Transfer Protocol),默认的端口号为69/udp;

SSH(安全登录)、SCP(文件传输)、端口重定向,默认的端口号为22/tcp;

SMTP Simple Mail Transfer Protocol (E-mail),默认的端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口);

POP3 Post Office Protocol (E-mail) ,默认的端口号为110/tcp;

WebLogic,默认的端口号为7001;

Webshpere运用程序,默认的端口号为9080;

webshpere管理工具,默认的端口号为9090;

JBOSS,默认的端口号为8080;

TOMCAT,默认的端口号为8080;

WIN2003远程上岸,默认的端口号为3389;

Symantec AV/Filter for MSE,默认端口号为 8081;

Oracle 数据库,默认的端口号为1521;

ORACLE EMCTL,默认的端口号为1158;

Oracle XDB(XML 数据库),默认的端口号为8080;

Oracle XDB FTP做事,默认的端口号为2100;

MS SQLSERVER数据库server,默认的端口号为1433/tcp 1433/udp;

MS SQLSERVER数据库monitor,默认的端口号为1434/tcp 1434/udp;

QQ,默认的端口号为1080/udp

等等,更详细的去百度吧,啊哈哈

端口的三种状态

OPEN --端口是开放的,可以访问,有进程

CLOSED --端口不会返回任何东西..可能有waf

FILTERED --可以访问,但是没有程序监听

这里用一个工具--nmap举下栗子吧...

C:\Users\Administrator>nmap -sV localhost

Starting Nmap 7.70 ( [url]https://nmap.org[/url] ) at 2018-07-03 17:10 ?D1ú±ê×?ê±??

Nmap scan report for localhost (127.0.0.1)

Host is up (0.00053s latency).

Other addresses for localhost (not scanned): ::1

Not shown: 990 closed ports

PORT STATE SERVICE VERSION

80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)

135/tcp open msrpc Microsoft Windows RPC

443/tcp open ssl/https VMware Workstation SOAP API 14.1.1

445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WorkGroup)

903/tcp open ssl/vmware-auth VMware Authentication Daemon 1.10 (Uses VNC, SOAP)

1080/tcp open http-proxy Polipo

3306/tcp open mysql MySQL 5.5.53

8088/tcp open radan-http?

10000/tcp open snet-sensor-mgmt?

65000/tcp open tcpwrapped

说的差不多了,咱们开始用Python实现它....端口扫描在Python中可以用的模块有很多,本文用socket模块演示单线程的在之前的文章有说过,详细传送门:

一个精壮的代购骗子被我彻底征服

#-- coding: UTF-8 --

import socket

def Get_ip(domain):

try:

return socket.gethostbyname(domain)

except socket.error,e:

print '%s: %s'%(domain,e)

return 0

def PortScan(ip):

result_list=list()

port_list=range(1,65535)

for port in port_list:

try:

s=socket.socket()

s.settimeout(0.1)

s.connect((ip,port))

openstr= \"大众 PORT:\公众+str(port) +\公众 OPEN \公众

print openstr

result_list.append(port)

s.close()

except:

pass

print result_list

def main():

domain = raw_input(\"大众PLEASE INPUT YOUR TARGET:\"大众)

ip = Get_ip(domain)

print 'IP:'+ip

PortScan(ip)

if __name__=='__main__':

main()

速率是不是巨慢,既然是告别脚本小子,写个单线程的。

肯定是弗成的,啊哈哈

放出多线程版本

#-- coding: UTF-8 --

import socket

import threading

lock = threading.Lock()

threads = []

def Get_ip(domain):

try:

return socket.gethostbyname(domain)

except socket.error,e:

print '[-]%s: %s'%(domain,e)

return 0

def PortScan(ip,port):

try:

s=socket.socket()

s.settimeout(0.1)

s.connect((ip,port))

lock.acquire()

openstr= \公众[-] PORT:\"大众+str(port) +\"大众 OPEN \公众

print openstr

lock.release()

s.close()

except:

pass

def main():

banner = '''

_

_ __ ___ _ __| |_ ___ ___ __ _ _ __

| '_ \ / _ \| '__| __/ __|/ __/ _` | '_ \

| |_) | (_) | | | |_\__ \ (_| (_| | | | |

| .__/ \___/|_| \__|___/\___\__,_|_| |_|

|_|

'''

print banner

domain = raw_input(\"大众PLEASE INPUT YOUR TARGET:\"大众)

ip = Get_ip(domain)

print '[-] IP:'+ip

for n in range(1,76):

for p in range((n-1)880,n880):

t = threading.Thread(target=PortScan,args=(ip,p))

threads.append(t)

t.start()

for t in threads:

t.join()

print ' This scan completed !'

if __name__=='__main__':

main()

很大略的,我都不知道该怎么讲。


如果你根本知识还不足稳定,请移步至低级篇

Python大法从入门到编写POC

子域名采集脚本编写

采集子域名可以在测试范围内创造更多的域或子域,这将增大漏洞创造的几率。
采集的方法也有很多方法,本文就不再过多的阐述了,采集方法的方法可以参考这篇文章:子域名搜集思路与技巧梳理

实在lijiejie大佬的subdomainbrute就够用了.....当然了,i春秋也有视频教程的。


Python安全工具开拓运用

本文就演示三种吧

第一种是通过字典爆破,这个方法紧张靠的是字典了....采集的多少取决于字典的大小了...

演示个单线程的吧

#-- coding: UTF-8 --

import requests

import re

import sys

def writtarget(target):

print target

file = open('result.txt','a')

with file as f:

f.write(target+'\n')

file.close()

def targetopen(httptarget , httpstarget):

header = {

'Connection': 'keep-alive',

'Pragma': 'no-cache',

'Cache-Control': 'no-cache',

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8',

'DNT': '1',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8'

}

try:

reponse_http = requests.get(httptarget, timeout=3, headers=header)

code_http = reponse_http.status_code

if (code_http == 200):

httptarget_result = re.findall('//.', httptarget)

writtarget(httptarget_result[0][2:])

else:

reponse_https = requests.get(httpstarget, timeout=3, headers=header)

code_https = reponse_https.status_code

if (code_https == 200):

httpstarget_result = re.findall('//.', httpstarget)

writtarget(httpstarget_result[0][2:])

except:

pass

def domainscan(target):

f = open('domain.txt','r')

for line in f:

httptarget_result = 'http://'+ line.strip() + '.'+target

httpstarget_result = 'https://'+ line.strip() + '.'+target

targetopen(httptarget_result, httpstarget_result)

f.close()

if __name__ == \公众__main__\"大众:

print ' ____ _ ____ _ '

print '| _ \ ___ _ __ ___ __ _(_)_ __ | __ ) _ __ _ _| |_ ___ '

print \"大众| | | |/ _ \| '_ ` _ \ / _` | | '_ \| _ \| '__| | | | __/ _ \ \公众

print \"大众| |_| | (_) | | | | | | (_| | | | | | |_) | | | |_| | || __/\公众

print '|____/ \___/|_| |_| |_|\__,_|_|_| |_|____/|_| \__,_|\__\___|'

file = open('result.txt','w+')

file.truncate()

file.close()

target = raw_input('PLEASE INPUT YOUR DOMAIN(Eg:ichunqiu.com):')

print 'Starting.........'

domainscan(target)

print 'Done ! Results in result.txt'

第二种是通过搜索引擎采集子域名,不过有些子域名不会收录在搜索引擎中.....

参考这篇文章

工具| 手把手教你信息网络之子域名网络器

我以为这篇文章先容的还可以的....我也

#--coding:utf-8--

import requests

import re

key=\"大众qq.com\公众

sites=[]

match='style=\公众text-decoration:none;\"大众>(.?)/'

for i in range(48):

i=i10

url=\公众http://www.baidu.com.cn/s?wd=site:\公众+key+\"大众&cl=3&pn=%s\公众%i

response=requests.get(url).content

subdomains=re.findall(match,response)

sites += list(subdomains)

site=list(set(sites)) #set()实现去重

print site

print \公众The number of sites is %d\"大众%len(site)

for i in site:

print i

第三种便是通过一些第三方网站..实现方法类似于第二种

在之前的文章中先容过,我就直接引用过来了

不会的话,就看这篇文章,很详细...

Python大法之从HELL0 MOMO到编写POC(五)

import requests

import re

import sys

def get(domain):

url = 'http://i.links.cn/subdomain/'

payload = (\公众domain={domain}&b2=1&b3=1&b4=1\"大众.format(domain=domain))

r = requests.post(url=url,params=payload)

con = r.text.encode('ISO-8859-1')

a = re.compile('value=\"大众(.+?)\"大众><input')

result = a.findall(con)

list = '\n'.join(result)

print list

if __name__ == '__main__':

command= sys.argv[1:]

f = \公众\"大众.join(command)

get(f)

CMS指纹识别脚本编写

现在有很多开源的指纹识别程序,w3af,whatweb,wpscan,joomscan等,常见的识别的几种办法:

1:网页中创造关键字

2:特定文件的MD5(紧张是静态文件、不一定假如MD5)

3:指定URL的关键字

4:指定URL的TAG模式

i春秋也有相应的课程

Python安全工具开拓运用

本着买不起课程初心,啊哈哈,我就不讲ADO老师讲的方法了。


啊哈哈

不过写的都差不多,只是用的模块不同。


本文我先容两种方法,一种是通过API的。

另一种便是纯粹的指纹识别了,识别的多少看字典的大小了。


先说第一种。


说白了,便是发送个post要求,把关键字取出来就ok了,完备没有难度。

我用的指纹识别网站是:http://whatweb.bugscaner.com/look/,我怎么觉得有种打广告的觉得。


抓个包。

然后就一顿老套路

#-- coding: UTF-8 --

import requests

import json

def what_cms(url):

headers = {

'Connection': 'keep-alive',

'Pragma': 'no-cache',

'Cache-Control': 'no-cache',

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8',

'DNT': '1',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8'

}

post={

'hash':'0eca8914342fc63f5a2ef5246b7a3b14_7289fd8cf7f420f594ac165e475f1479',

'url':url,

}

r=requests.post(url='http://whatweb.bugscaner.com/what/',

data=post, headers=headers)

dic=json.loads(r.text)

if dic['cms']=='':

print 'Sorry,Unidentified........'

else:

print 'CMS:' + dic['cms']

if __name__ == '__main__':

url=raw_input('PLEASE INPUT YOUR TARGET:')

what_cms(url)

cool。

接下来,便是CMS指纹识别的第二种方法了。


我用的匹配关键字的方法。


找了个dedecms的匹配字典

范例:链接||||关键字||||CMS别称

/data/admin/allowurl.txt||||dedecms||||DedeCMS(织梦)

/data/index.html||||dedecms||||DedeCMS(织梦)

/data/js/index.html||||dedecms||||DedeCMS(织梦)

/data/mytag/index.html||||dedecms||||DedeCMS(织梦)

/data/sessions/index.html||||dedecms||||DedeCMS(织梦)

/data/textdata/index.html||||dedecms||||DedeCMS(织梦)

/dede/action/css_body.css||||dedecms||||DedeCMS(织梦)

/dede/css_body.css||||dedecms||||DedeCMS(织梦)

/dede/templets/article_coonepage_rule.htm||||dedecms||||DedeCMS(织梦)

/include/alert.htm||||dedecms||||DedeCMS(织梦)

/member/images/base.css||||dedecms||||DedeCMS(织梦)

/member/js/box.js||||dedecms||||DedeCMS(织梦)

/php/modpage/readme.txt||||dedecms||||DedeCMS(织梦)

/plus/sitemap.html||||dedecms||||DedeCMS(织梦)

/setup/license.html||||dedecms||||DedeCMS(织梦)

/special/index.html||||dedecms||||DedeCMS(织梦)

/templets/default/style/dedecms.css||||dedecms||||DedeCMS(织梦)

/company/template/default/search_list.htm||||dedecms||||DedeCMS(织梦)

全的字典去百度吧,小弟鄙人......小弟用的是deepin,win的报错太鸡肋,实在

#-- coding: UTF-8 --

import os

import threading

import urllib2

identification = False

g_index = 0

lock = threading.Lock()

def list_file(dir):

files = os.listdir(dir)

return files

def request_url(url='', data=None, header={}):

page_content = ''

request = urllib2.Request(url, data, header)

try:

response = urllib2.urlopen(request)

page_content = response.read()

except Exception, e:

pass

return page_content

def whatweb(target):

global identification

global g_index

global cms

while True:

if identification:

break

if g_index > len(cms)-1:

break

lock.acquire()

eachline = cms[g_index]

g_index = g_index + 1

lock.release()

if len(eachline.strip())==0 or eachline.startswith('#'):

pass

else:

url, pattern, cmsname = eachline.split('||||')

html = request_url(target+url)

rate = float(g_index)/float(len(cms))

ratenum = int(100rate)

if pattern.upper() in html.upper():

identification = True

print \"大众 CMS:%s,Matched URL:%s\"大众 % (cmsname.strip('\n').strip('\r'), url)

break

return

if __name__ == '__main__':

print '''

__ ___ _ ____ __ __ ____

\ \ / / |__ __ _| |_ / ___| \/ / ___|

\ \ /\ / /| '_ \ / _` | __| | | |\/| \___ \

\ V V / | | | | (_| | |_| |___| | | |___) |

\_/\_/ |_| |_|\__,_|\__|\____|_| |_|____/

'''

threadnum = int(raw_input(' Please input your threadnum:'))

target_url = raw_input(' Please input your target:')

f = open('./cms.txt')

cms = f.readlines()

threads = []

if target_url.endswith('/'):

target_url = target_url[:-1]

iftarget_url.startswith('http://')or target_url.startswith('https://'):

pass

else:

target_url = 'http://' + target_url

for i in range(threadnum):

t = threading.Thread(target=whatweb, args=(target_url,))

threads.append(t)

print ' The number of threads is %d' % threadnum

print 'Matching.......'

for t in threads:

t.start()

for t in threads:

t.join()

print \"大众 All threads exit\"大众

cool。


这样就大略的实现CMS识别。


标签:

相关文章

微信第三方登录便捷与安全的完美融合

社交平台已成为人们日常生活中不可或缺的一部分。微信作为我国最受欢迎的社交软件之一,拥有庞大的用户群体。为了方便用户在不同平台间切换...

网站建设 2025-02-18 阅读1 评论0

广东高速代码表解码高速公路管理智慧

高速公路作为国家交通动脉,连接着城市与城市,承载着巨大的物流和人流。广东作为我国经济大省,高速公路网络密布,交通流量巨大。为了更好...

网站建设 2025-02-18 阅读0 评论0