q意味着扫描一个完整的频率范围需要大U?5分钟Q?and at least several keystrokes must be pressed while we're sniffing within the correct 10 second period. ) 在仔l学?fn)了Travis的研IӞKeyKeriki 的项目,以及(qing)试了我的键盘,我们可以做一些改q:(x)
在检查了很多键盘之后Q我发现所有的微Y键盘的MAC地址都是?xCD开始的Q因此我们的preamble永远?code style="line-height: 25.6000003814697px; box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 13.6000003814697px; padding: 0.2em 0px; margin: 0px; border-radius: 3px; background-color: rgba(0, 0, 0, 0.0392157);">0xAA (10101010) Q?nbsp;after inspecting more keyboards, I found that all Microsoft keyboards begin with 0xCD as the MAC, which tells us that our preamble will always be 0xAA (10101010) 因ؓ(f)0xAA后面永远跟的? (0xCD 二进?11001101)以保持比特位交替Q这样又加快了一倍的搜烦速度?/li>
Packet type 0x78 = keystroke, 0x38 = idle (key is held down)
Model type 0x06 = keyboard? This is the same HID code for a keyboard
HID code 0x05 = letter 'b' (described in section 7 here)
KeySweeper的解密部分代?
// decrypt those keyboard packets! void decrypt(uint8_t* pkt) { // our encryption key is the 5-byte MAC address and // starts 4 bytes in (4-byte header is unencrypted) for (int i = 4; i < 15; i++) pkt[i] ^= mac >> (((i - 4) % 5) * 8) & 0xFF; }
]]>Promiscuity is the nRF24L01+'s Dutyhttp://www.tkk7.com/baicker/archive/2015/04/30/424312.html009009Thu, 30 Apr 2015 10:29:00 GMThttp://www.tkk7.com/baicker/archive/2015/04/30/424312.htmlhttp://www.tkk7.com/baicker/comments/424312.htmlhttp://www.tkk7.com/baicker/archive/2015/04/30/424312.html#Feedback0http://www.tkk7.com/baicker/comments/commentRss/424312.htmlhttp://www.tkk7.com/baicker/services/trackbacks/424312.html译部分内容Q备忘加巩固Q好多不清楚或错误的地方Q望高手指正?br />extending the work of Thorsten Schröder and Max Moser of the KeyKeriki v2.0 project.
Similar to Bluetooth, the protocols of the Nordic VLSI nRF24L01+ chip are designed such that the MAC address of a network participant doubles as a SYNC field, making promiscuous sniffing difficult both by configuration and by hardware. In this short article, I present a nifty technique for promiscuously sniffing such radios by (1) limiting the MAC address to 2 bytes, (2) disabling checksums, (3) setting the MAC to be the same as the preamble, and (4) sorting received noise for valid MAC addresses which may later be sniffed explicitly. This method results in a rather high false-positive rate for packet reception as well as a terribly high drop rate, but once a few packets of the same address have been captured, that address can be sniffed directly with normal error rates.
Part 2: or, Sniffing on the cheap. 关于h监听的一些诀H,涉及(qing)到寄存器的不合法讑֮以及(qing)背景噪音?#8220;期待”Q可以查?nbsp;goodfet.nrf 客户端的cAutoTuner()的代码?/span>
首先Q要嗅探的地址长度必须短到最短,手册上说0x03地址的寄存器最低两bit是负责地址宽度Q长度)的,有效的长度值是3字节Q?1bQ,4字节Q?0bQ和5字节Q?1bQ。把q个地址设成00b是指2字节宽度Q但是当用了校验,l果大量包中出现背景噪音?Setting this value to 00b gives a 2 byte match, but when checksums are disabled, this results in a deluge of false-positive packets that appear out of background noise.)
q取决于preamble前的0x00Q一般在背景噪音中而不是攻击者的q播。后面tmd没看懂,This does depend upon the preamble being preceded by 0x00, which occurs often in background noise but is not broadcast by the attacker. So the odds of receiving a packet, while significantly worse than we'd like, are much better than the 1/2^16 you might assume. In experiments, one in twenty or so real packets arrive while a significant number of false positives also sneak in.
不是依赖数据包的转储和排序,q个自动调谐的脚本标识网l参与者以?qing)打印出MAC地址。只要简单地q行 'goodfet.nrf autotune | tee autotune.txt' 然后喝杯咖啡休息一?x),{你回来的时候,你会(x)发现如下记录Q标C一个离 OpenBeacon 不远的无U设备?/span>
q段也tmd不知所云。As low data-rate devices require significantly more time than high-rate devices to identify, such devices will either require undue amounts of patience or a real KeyKeriki. In the case of a Nike+ foot pod, I'm resorting to using loud hip hop music to trigger the sensor, which is left inside a pair of headphones. My labmates are not amused, but it is a great way to reveal the radio settings when syringe probes aren't convenient.
没看懂Applying an XOR to the proper region yields decrypted packets such as the following. Because these contain USB HID events, key-up HID events quite often include long strings of 0x00 bytes. When XOR'ed with the key, those zeroes produce the key, so some packets contain the XOR key not just once, but twice!
Finally, the USB HID events need to be deciphered to get key positions. Mapping a few of these yields meaningful text, with bytes duplicated in the case of retransmissions and omitted in the case of lost packets. 用校验允怸弃的数据包{换成字节错误的数?/span>更小Q你看我该咋译Q)Q而跟t序列号防止重发的键被昄两次。不怎样Q结果还是相当鼓舞h心的Q?K?amp;46@%#%……89&^%$看图吧,鸟语。Disabling checksums will allow the dropped packets to be converted to a smaller number of byte errors, while tracking sequence numbers will prevent retransmitted keys from being displayed twice. Regardless, the results are quite neighborly, as you can make out the sentence typed below in its packet capture.
Part 4; or, Reproducing these results.
All of the code for this article is available in the GoodFET Project'srepository, as part of GoodFETNRF.py and its goodfet.nrf client script. The hardware used was an NHBadge12, although an NHBadge12B or a GoodFET with the SparkFun nRF24L01+ Transceiver Module will work just as well.
To identify a nearby Nordic transmitter, run 'goodfet.nrf autotune'. Keyboards can be identified and sniffed with 'goodfet.nrf sniffmskb', while a known keyboard can be sniffed and decoded by providing its address as an argument, 'goodfet.nrf sniffmskb aa,c10ac074cd,17,09'. The channel--0x17 in this case--will change for collision avoidance, but channel hopping is slow and resets to the same starting channel. Identification of the broadcast channel is faster when the receiver is not plugged in, as that causes the keyboard to continuously rebroadcast a keypress for a few seconds.
All code presently in the repository will be refactored and rewritten, so revert to revision 885 or check the documentation for any changes.
Conclusions
Contrary to prior belief, the nRF24L01+ can be used to promiscuously sniff compatible radios, allowing for keyboard sniffing without special hardware. It's also handy for figuring out the lower levels of the otherwise-documented ANT+ protocol, and for reverse engineering vendor-proprietary protocols such as Nike+.
Additionally, it should be emphasized that the security of the Microsoft keyboards in this family is irreparably broken, and has been since Moser and Schröder published the vulnerability at CanSecWest. (It's a shame, because the keyboards are quite nicer than most Bluetooth ones, both in pairing delay and in battery life.) Do not purchase these things unless you want to broadcast every keystroke.
While I have not yet written code for injecting new keystrokes, such code does exist in the KeyKeriki repository and would not be difficult to port. Perhaps it would be fun to build stand-alone firmware for the Next Hope badge that sniffs for keyboards, broadcasting Rick Astley lyrics into any that it finds?
Please, for the love of the gods, use proper cryptography and double-check the security your designs. Then triple-check them. There is no excuse for such vulnerable garbage as these keyboards to be sold with neither decent security nor a word of warning.
原文Q?a target="_blank">Promiscuity is the nRF24L01+'s Duty
]]>OsmocomBB目http://www.tkk7.com/baicker/archive/2013/11/13/406293.html009009Wed, 13 Nov 2013 08:27:00 GMThttp://www.tkk7.com/baicker/archive/2013/11/13/406293.htmlhttp://www.tkk7.com/baicker/comments/406293.htmlhttp://www.tkk7.com/baicker/archive/2013/11/13/406293.html#Feedback118http://www.tkk7.com/baicker/comments/commentRss/406293.htmlhttp://www.tkk7.com/baicker/services/trackbacks/406293.html之前看过好多大牛玩osmocomBB目Q改个手机,q电(sh)脑,然后~译一堆东西,到最后都是开个consoleQ满屏红U绿l的文字滚动Q看着很吊? 但都不说最l能q啥Q滚屏完了就没了Q大牛都太低调了Q最q有朋友也在搞这个,了解了一下,以下描述都是我最q查阅的大量鸟文资料?qing)少量中文资料之后的理解Q如有误望指出? OsmocomBB是国外一个开源项目,是GSM协议?Protocols stack)的开源实玎ͼ全称是Open source mobile communication Baseband.目的是要实现手机端从物理?layer1)到l(f)ayer3的三层实现? q里记录一下过E,以便备忘和其它有需要的童鞋走弯\? ........
]]>MSSQL 2008 日志分析http://www.tkk7.com/baicker/archive/2013/05/03/398713.html009009Fri, 03 May 2013 02:17:00 GMThttp://www.tkk7.com/baicker/archive/2013/05/03/398713.htmlhttp://www.tkk7.com/baicker/comments/398713.htmlhttp://www.tkk7.com/baicker/archive/2013/05/03/398713.html#Feedback1http://www.tkk7.com/baicker/comments/commentRss/398713.htmlhttp://www.tkk7.com/baicker/services/trackbacks/398713.html--drop function dbo.f_splitBinary
create function dbo.f_splitBinary(@s ... 阅读全文