第76天-Python 开发-内外网收集 Socket子域名

news/2024/11/28 19:41:57/

思维导图

在这里插入图片描述

知识点

应急响应补充知识点
挖矿靶机分析 PDF 外加其他

应急响应资源包 提取码:xiao

Python 开发相关知识点

  • 1.开发基础环境配置说明

    Windows10+Pycharm

  • 2.Python 开发学习的意义

    学习相关安全工具原理

    掌握自定义工具及拓展开发

    解决实战中无工具或手工麻烦批量化等情况

    在二次开发 Bypass,日常任务,批量测试利用等方面均有帮助

    如:SRC 批量收集并利用,AWD 批量利用获取 FLAG,CTF 加解密脚本等

  • 3.本篇直播涉及的技术方向

    Socket,爬虫,正则表达式,框架开发等

本次直播涉及知识点:

Socket 部分技术,进程命令执行,交互参数执行,NMAP 工具模块使用,异常处理等
在这里插入图片描述

演示案例:

IP&Whois&系统指纹获取代码段-外网

import os
import socket
import urllib.request
from scapy.utils import whois# ip 查询-socket
"""
Pyhton 域名为ip的方法
调用socket 模块
一  打印有详细信息
import socket
host = 'www.baidu.com'
ip = socket.getaddrinfo(host, port)
print(ip[0][4][0])
二 
import socket
host = 'www.baidu.com'
ip = socket.gethostbyname(host)
print(ip)"""
# pythton 实现whois 查询
"""
一 调用网络接口
站长之家等接口
import urllib.request
url='www.baidu.com'
req_whois = urllib.request.urlopen('http://whois.chinaz.com/'+url)
print(req_whois.read().decode())
二 使用 whois 库查询
import whois
url='www.baidu.com'
data = whois(url)
print(data)"""# python  实现系统调指令用
"""
https://blog.csdn.net/u011119817/article/details/119744799
# os.system
import os
os.system('whoami')
"""
def ip_checks(url):# ip = socket.getaddrinfo(url,'80')ip = socket.getaddrinfo(url,None)print(ip)
def ip_check(url):ip = socket.gethostbyname(url)print(ip)
def whois_check(url):data=whois(url)print(data)req_whois = urllib.request.urlopen('http://whois.chinaz.com/' + url)print(req_whois.read().decode())if __name__ == '__main__':ip_check('www.baidu.com')ip_checks('www.baidu.com')# whois_check('www.baidu.com')os.system('whoami')

CDN&子域名&端口扫描&交互代码段-外网


"""
cdn&子域名&端口扫描&交互代码段-外网
交互代码段
import sys
if __name__ == '__main__':
x =sys.argv[1]
y =sys.argv[2]
xxx(x,y)
"""
import os
import socket"""
# cdn 识别-利用返回IP数目进行判断
"""
# 子域名查询
"""#1.利用字典记载爆破进行查询
#2.利用 bing 或第三方接口进行查询
"""
# 端口扫描
"""
#端口扫描
#1.自写 socket 协议 tcp,udp 扫描
#2.调用第三方 masscan,nmap 等扫描
"""def cdn_check(url):ns = 'nslookup  ' + urldata = os.popen(ns, 'r').read()if data.count('.') > 8:print('exist cdn')else:print('None!')def zym_check(url):url = url.replace('www', '')for zym_dic in open('dic.txt'):zym_dic = zym_dic.replace('\n', '')zym_dic = zym_dic + urltry:ip = socket.gethostbyname(zym_dic)print(zym_dic + '--------->' + ip)except Exception as e:# print(zym_dic + '--------->' + 'Error!')passdef port_scan(url):ip = socket.gethostbyname(url)# ports = ('21', '22', '135', '443', '445', '80', '1433', '3306', "3389", '1521', '8000', '7002', '7001', '8080',#          "9090", '8888', "4848")# ports=range(200)server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# for port in ports:try:data = server.connect_ex((ip, 80))if data == 0:print(ip + ':' + '80' + '------>' + 'open')else:print(ip + ':' + '80' + '------>' + 'close')passexcept  Exception as e:print('Error')if __name__ == '__main__':cdn_check('www.baidu.com')# zym_check('www.baidu.com')port_scan('isecnoob.club')

IP&计算机名&存活主机&端口扫描代码段-内网

"""
cdn&子域名&端口扫描&交互代码段-外网"""
import os
import socket"""
# cdn 识别-利用返回IP数目进行判断
"""
# 子域名查询
"""#1.利用字典记载爆破进行查询
#2.利用 bing 或第三方接口进行查询
"""
# 端口扫描
"""
#端口扫描
#1.自写 socket 协议 tcp,udp 扫描
#2.调用第三方 masscan,nmap 等扫描
"""
"""
#系统判断-
#1.基于TTL值进行判断
#2.基于第三方脚本进行判断
"""def cdn_check(url):ns = 'nslookup  ' + urldata = os.popen(ns, 'r').read()if data.count('.') > 8:print('exist cdn')else:print('None!')def zym_check(url):url = url.replace('www', '')for zym_dic in open('dic.txt'):zym_dic = zym_dic.replace('\n', '')zym_dic = zym_dic + urltry:ip = socket.gethostbyname(zym_dic)print(zym_dic + '--------->' + ip)except Exception as e:# print(zym_dic + '--------->' + 'Error!')passdef port_scan(url):ip = socket.gethostbyname(url)# ports = ('21', '22', '135', '443', '445', '80', '1433', '3306', "3389", '1521', '8000', '7002', '7001', '8080',#          "9090", '8888', "4848")# ports=range(200)server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# for port in ports:try:data = server.connect_ex((ip, 80))if data == 0:print(ip + ':' + '80' + '------>' + 'open')else:print(ip + ':' + '80' + '------>' + 'close')passexcept  Exception as e:print('Error')
def os_check(url):data = os.popen("nmap\\nmap -O "+url, "r").read()print(data)if __name__ == '__main__':cdn_check('www.baidu.com')# zym_check('www.baidu.com')port_scan('isecnoob.club')os_check('isecnoob.club')
import nmap#内网主机信息探针
#1.原生利用ping进行获取
#2.原生利用icmp,tcp,udp等协议获取
#3.利用第三方模块库nmap等加载扫描获取
def nmapscan():nm = nmap.PortScanner()try:data=nm.scan(hosts='192.168.80.0/24', arguments='-T4 -F')print(nm.all_hosts())print(nm.csv())print(data)except Exception as err:print("error")if __name__ == '__main__':nmapscan()

Python-nmap模块报错object has no attribute ‘PortScanner’解决办法_clur3n的博客-CSDN博客

Py 格式解析环境与可执行程序格式转换-Pyinstaller

  • 使用pyInstaller可以将python脚本打包成可执行文件,方便在没有python环境的计算机中执行
  • Python打包方法——Pyinstaller - 晴空行 - 博客园 (cnblogs.com)
#安装pyinstaller
pip install pyinstaller
pyinstaller -F  xxx.py

涉及资源:

https://www.jb51.net/softs/598504.html
Python中python-nmap模块的使用
Python开发 提取码xiao
应急响应资源包 提取码:xiao

视频中python代码

import socket,os,time,sys
from whois import whois#ip查询
def ip_check(url):ip=socket.gethostbyname(url)print(ip)#whois查询
def whois_check(url):data=whois(url)print(data)#CDN判断-利用返回IP条数进行判断
def cdn_check(url):ns="nslookup "+url#data=os.system(ns)#print(data) #结果无法读取操作data=os.popen(ns,"r").read()if data.count(".")>8:print("存在CDN")else:print("不存在CDN")#子域名查询-
#1.利用字典记载爆破进行查询
#2.利用bing或第三方接口进行查询
def zym_list_check(url):url=url.replace("www.","")for zym_list in open("dic.txt"):zym_list=zym_list.replace("\n","")zym_list_url=zym_list+"."+urltry:ip=socket.gethostbyname(zym_list_url)print(zym_list_url+"->"+ip)time.sleep(0.1)except Exception as e:print(zym_list_url+"->"+"error")time.sleep(0.1)def zym_api_check(url):url=url.replace("www.", "")#端口扫描
#1.自写socket协议tcp,udp扫描
#2.调用第三方masscan,nmap等扫描
def port_check(url):ip = socket.gethostbyname(url)#ip="192.168.76.155"#ports={'21','22','135','443','445','80','1433','3306',"3389",'1521','8000','7002','7001','8080',"9090",'8089',"4848}server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#for port in ports:try:data=server.connect_ex((ip, 80))if data==0:print(ip+":"+str(80)+"|open")else:print(ip+":"+str(80)+"|close")passexcept Exception as err:print("error")#系统判断-
#1.基于TTL值进行判断
#2.基于第三方脚本进行判断
def os_check(url):data = os.popen("nmap\\nmap -O "+url, "r").read()print(data)if __name__ == '__main__':print("Test:python test.py www.xiaodi8.com all")url = sys.argv[1]check = sys.argv[2]#print(url +"\n"+ check)if check=="all":ip_check(url)whois_check(url)cdn_check(url)os_check(url)#port_check(url)zym_list_check(url)#zym_list_check("www.xueersi.com")#port_check("www.xiaodi8.com")#os_check("www.xiaodi8.com")

http://www.ppmy.cn/news/155665.html

相关文章

激光SLAM:LOAM-Livox 算法研究(1) -- 功能包编译与验证

激光SLAM:LOAM-Livox 算法研究(1) -- 功能包编译与验证 1、功能包所需环境2、功能包下载和编译3、运行3.1 Livox Mid-403.2 Livox Mid-100 4、公开数据集(Rosbag)进行验证4.1 Mid-40小场景4.2 Mid-40大场景4.3 Mid-100…

【Oracle数据库】实验-触发器trigger

触发器和存储过程的区别 procedure 带参数,trigger不带参数。procedure 体将declare 改为is,trigger体局部变量的声明依然是declare。procedure 的调用采用程序块主动调用,trigger是对on之后的对象做了某种动作(如insert&#xf…

MyIm

今天用了这个工具 以后就用这个工具上QQ MSN了。还能整合其他得一些聊天工具。such as icq .以后不用又开QQ 又开MSN了 我得myim号是 11459410

Fabric实战(7)Fabric模块配置参数详解-orderer

orderer模块主要负责对交易进行排序&#xff0c;并将排序好的交易打包成区块。 1 orderer模块的命令和参数 usage: orderer [<flags>] <command> [<args> ...]Hyperledger Fabric orderer nodeFlags:--help #显示帮助信息Commands:help [<command>.…

Zemax自学---1(基础知识)

看北京理工大学公开课总结的 光学系统设计与工艺&#xff08;北京理工大学&#xff09;_哔哩哔哩_bilibili 光学系统 线段以从左到右&#xff0c;从下到上为正 角度以锐角度量&#xff0c;顺时针为正 像差 色差&#xff1a; 1.介质色散&#xff08;不同波长光经过介质…

php在线解密,zend在线解密

PHP在线解密 支持Zend解密&#xff0c;易盾解密&#xff0c;混淆解密。支持Zend/PHP5.2&#xff0c;Zend/PHP5.3解密&#xff0c;Zend/PHP5.4解密。 支持易盾1.x&#xff0c;易盾2.x解密。支持phpjm解密&#xff0c;tianyiw解密&#xff0c;zym解密&#xff0c;威盾/微盾解密。…

Linux环境下搭建主从DNS服务器

一、bind简介 Linux中通常使用bind来实现DNS服务器的架设&#xff0c;bind软件由isc(www.isc.org)维护。在yum仓库中可以找到软件&#xff0c;配置好yum源&#xff0c;直接使用命令yum install bind就可以安装&#xff0c;监听窗口为53。bind的主要配置文件为/etc/named.conf&…

基于FTP协议的文件上传与下载

FTP协议 FTP协议建立在TCP协议之上&#xff0c;是进行文件传输服务的常用协议&#xff0c;采用C/S模式&#xff0c;是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议。 (TCP协议可参考&#xff1a;http://t.csdn.cn/6a78D &#xff09; FTP服务器的简单…