From 8df313c4d6607181576471e08d7e909c9c0f33e9 Mon Sep 17 00:00:00 2001
From: Francis Rowe Or go back to main index
+ Remove those screws and remove the HDD:
+ Lift off the palm rest:
+ Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:
+ Gently wedge both sides loose:
+ Remove that cable from the position:
+ Remove the bezel (sorry forgot to take pics).
+
+ On the CPU (and there is another chip south-east to it, sorry forgot to take pic)
+ clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too)
+ you should also clean the heatsink the same way
+ This is also an opportunity to change the CPU to another one. For example if you had a Core Duo T2400, you can upgrade it to a better processor
+ (higher speed, 64-bit support). A Core 2 Duo T7600 was installed here.
+
+ Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):
+ Reinstall that upper bezel:
+ Do that:
+ Attach keyboard:
+ Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:
+ It lives!
+ Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:
+ Copyright © 2014 Francis Rowe, All Rights Reserved. Or go back to main index
+ Remove those covers and unscrew:
+ Gently pry off the front bezel.
+
+ Remove inverter board:
+ Disconnect LCD cable:
+ Remove the panel:
+ Move the rails (left and right side) from the old panel to the new one and then attach LCD cable:
+ Insert panel (this one is an LG-Philips LP150E05-A2K1, and there are others. See ../index.html#supported_t60_list):
+ Insert new inverter board (see ../index.html#supported_t60_list for what is recommended on your LCD panel):
+ Now re-attach the front bezel and put all the screws in.
+
+ It lives!
+ Copyright © 2014 Francis Rowe, All Rights Reserved. Or go back to main index
+ Most people think of security on the software side: the hardware is important aswell.
+ Hardware security is useful in particular to journalists (or activists in a given movement) who need absolute privacy in their work.
+ It is also generally useful to all those that believe security and privacy are inalienable rights.
+ Security starts with the hardware; crypto and network security come later.
+
+ Paradoxically, going this far to increase your security also makes you a bigger target.
+ At the same time, it protects you in the case that someone does attack your machine.
+ This paradox only exists while few people take adequate steps to protect yourself: it is your duty
+ to protect yourself, not only for your benefit but to make strong security normal so
+ that those who do need protection (and claim it) are a smaller target against the masses.
+
+ Even if there are levels of security beyond your ability (technically, financially and so on)
+ doing at least something (what you are able to do) is extremely important.
+ If you use the internet and your computer without protection, attacking you is cheap (some say it is
+ only a few US cents). If everyone (majority of people) use strong security by default,
+ it makes attacks more costly and time consuming; in effect, making them disappear.
+
+ This tutorial deals with reducing the number of devices that have direct memory access that
+ could communicate with inputs/outputs that could be used to remotely
+ command the machine (or leak data).
+
+ Remove those screws and remove the HDD:
+ Lift off the palm rest:
+ Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:
+ Gently wedge both sides loose:
+ Remove that cable from the position:
+ Now remove that bezel. Remove wifi, nvram battery and speaker connector (also remove 56k modem, on the left of wifi):
+ Remove those screws:
+ Disconnect the power jack:
+ Remove nvram battery (we will put it back later):
+ Disconnect cable (for 56k modem) and disconnect the other cable:
+ Disconnect speaker cable:
+ Disconnect the other end of the 56k modem cable:
+ Make sure you removed it:
+ Unscrew those:
+ Make sure you removed those:
+ Disconnect LCD cable from board:
+ Remove those screws then remove the LCD assembly:
+ Once again, make sure you removed those:
+ Remove the shielding containing the motherboard, then flip it over. Remove these screws, placing them on a steady
+ surface in the same layout as they were in before you removed them. Also, you should mark each screw hole after removing the
+ screw (a permanent marker pen will do), this is so that you have a point of reference when re-assembling the machine:
+ Remove microphone (soldering iron not needed. Just wedge it out gently):
+ Remove infrared:
+ Remove cardbus (it's in a socket, no need to disable. Just remove the port itself):
+ Before re-installing the upper chassis, remove the speaker:
+ Remove the wwan:
+ This is where the simcard connector is soldered. See notes above about wwan. Remove simcard by removing battery
+ and then it's accessible (so, remember to do this when you re-assemble. or you could do it now?)
+ Put those screws back:
+ Put it back into lower chassis:
+ Attach LCD and insert screws (also, attach the lcd cable to the board):
+ Insert those screws:
+ On the CPU (and there is another chip south-east to it, sorry forgot to take pic)
+ clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too)
+ you should also clean the heatsink the same way
+ Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):
+ Reinstall that upper bezel:
+ Do that:
+ Attach keyboard and install nvram battery:
+ Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:
+ Remove those covers and unscrew:
+ Gently pry off the front bezel (sorry, forgot to take pics).
+
+ Remove bluetooth module:
+ Re-attach the front bezel and re-insert the screws (sorry, forgot to take pics).
+
+ It lives!
+ Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:
+ Go to http://media.ccc.de/browse/congress/2013/30C3_-_5529_-_en_-_saal_2_-_201312271830_-_hardening_hardware_and_choosing_a_goodbios_-_peter_stuge.html
+ or directly to the video: http://mirror.netcologne.de/CCC/congress/2013/webm/30c3-5529-en-Hardening_hardware_and_choosing_a_goodBIOS_webm.webm.
+
+ A lot of this tutorial is based on that video. Look towards the second half of the video to see how to do the above.
+
+ EC: Cannot be removed but can be mitigated: it contains non-free
+ non-loadable code, but it has no access to the computer's RAM.
+ It has access to the on-switch of the wifi, bluetooth, modem and some
+ other power management features. The issue is that it has access to the
+ keyboard, however if the software security howto (not yet written) is followed correctly,
+ it won't be able to leak data to a local attacker. It has no network
+ access but it may still be able to leak data remotely, but that
+ requires someone to be nearby to recover the data with the help of an
+ SDR and some directional antennas[3].
+
+ Explain that black hats, TAO, and so on might use a 0day to get in,
+ and explain that in this case it mitigates what the attacker can do.
+ Also the TAO do some evaluation before launching an attack: they take
+ the probability of beeing caught into account, along with the kind of
+ target. A 0day costs a lot of money, I heard that it was from 100000$
+ to 400000$, some other websites had prices 10 times lower but that
+ but it was probably a typo. So if people increase their security it
+ makes it more risky and more costly to attack people.
+
+ It's possible to turn headphones into a microphone, you could try
+ yourself, however they don't record loud at all. Also intel cards have
+ the capability to change a connector's function, for instance the
+ microphone jack can now become a headphone plug, that's called
+ retasking. There is some support for it in GNU/Linux but it's not very
+ well known.
+
+ 30c3-5356-en-Firmware_Fat_Camp_webm.webm from the 30th CCC. While
+ their demo is experimental(their hardware also got damaged during the
+ transport), the spies probably already have that since a long time.
+ http://berlin.ftp.media.ccc.de/congress/2013/webm/30c3-5356-en-Firmware_Fat_Camp_webm.webm
+
+ Copyright © 2014 Francis Rowe, All Rights Reserved. Or go back to main index
+ You still have Lenovo BIOS, or you had libreboot running and you flashed another ROM; and you had bucts 1 set and
+ the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.
+ In this scenario, you compiled a ROM that had an incorrect configuration, or there is an actual bug preventing your machine from
+ booting. Or, maybe, you set BUC.TS to 0 and shut down after first flash while Lenovo BIOS was running. In any case, your machine is bricked and will not boot at all.
+
+ "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the machine, making this difficult. In this situation, external hardware (see hardware requirements above) is needed which can flash the SPI chip (where libreboot resides).
+
+ Remove those screws and remove the HDD:
+ Lift off the palm rest:
+ Lift up the keyboard, pull it back a bit, flip it over like that and then disconnect it from the board:
+ Gently wedge both sides loose:
+ Remove that cable from the position:
+ Now remove that bezel. Remove wifi, nvram battery and speaker connector (also remove 56k modem, on the left of wifi):
+ Remove those screws:
+ Disconnect the power jack:
+ Remove nvram battery:
+ Disconnect cable (for 56k modem) and disconnect the other cable:
+ Disconnect speaker cable:
+ Disconnect the other end of the 56k modem cable:
+ Make sure you removed it:
+ Unscrew those:
+ Make sure you removed those:
+ Disconnect LCD cable from board:
+ Remove those screws then remove the LCD assembly:
+ Once again, make sure you removed those:
+ Remove the shielding containing the motherboard, then flip it over. Remove these screws, placing them on a steady
+ surface in the same layout as they were in before you removed them. Also, you should mark each screw hole after removing the
+ screw (a permanent marker pen will do), this is so that you have a point of reference when re-assembling the machine:
+ At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):
+ Connecting the pomona:
+ Connect programmer to 2nd computer:
+ Programmer has power:
+ Now flash the bricked machine using the 2nd computer. in my case I did:Changing heatsink (or CPU) on the ThinkPad T60
+
+ Hardware requirements
+
+
+
+ Software requirements
+
+
+
+ Disassembly
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ See ../license.html for license conditions.
+ Changing the LCD panel on a 15.1" T60
+
+ Disassembly
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ See ../license.html for license conditions.
+ Security on the ThinkPad T60
+
+ Table of Contents
+
+
+ Hardware requirements
+
+
+
+ Software requirements
+
+
+
+
+ Rationale
+
+ Disassembly
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reason: has direct (and very fast) memory access, and could (theoretically) leak data over a side-channel.
+ Wifi: The ath5k/ath9k cards might not have firmware at all. They might safe but could have
+ access to the computer's RAM trough DMA. If people have an intel
+ card(most T60's come with Intel wifi by default, until you change it),then that card runs
+ a non-free firwamre and has access to the computer's RAM trough DMA! So
+ it's risk-level is very high.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Rationale:
+ Another reason to remove the microphone: If your computer gets[1] compromised, it can
+ record what you say, and use it to receive data from nearby devices if
+ they're compromised too. Also, we do not know what the built-in microcode (in the CPU) is doing; it could theoretically
+ be programmed to accept remote commands from some speaker somewhere (remote security hole). In other words,
+ the machine could already be compromised from the factory.
+
+
+
+
+ Rationale:
+ It has direct memory access and can be used to extract sensitive details (such as LUKS keys). See
+ 'GoodBIOS' video linked at the end (speaker is Peter Stuge, a coreboot hacker). The video covers X60
+ but the same topics apply to T60.
+
+
+ Reason: combined with the microphone issue, this could be used to leak data.
+ If your computer gets[1] compromised, it can be used to
+ transmit data to nearby compromised devices. It's unknown if it can be
+ turned into a microphone[2].
+ Replacement: headphones/speakers (line-out) or external DAC (USB).
+
+
+ Wwan (3d modem): They run proprietary software and have access to the
+ computer's RAM! So it's like AMT but over the GSM network which is
+ probably even worse.
+ Replacement: external USB wifi dongle. (or USB wwan/3g dongle; note, this has all the same privacy issues as mobile phones. wwan not recommended).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Not covered yet:
+
+
+
+
+ Also not covered yet:
+
+
+
+
+
+ Just put nail polish with lot of glider on the important screws, take
+ some good pictures. Keep the pictueres and make sure of their integrity.
+ Compare the nail polish with the pictures before powering on the laptop.
+
+
+
+
+
+ Extra notes
+
+
+ Risk level
+
+
+
+
+
+ References
+
+ [1] physical access
+ [2] microphone
+ [3] Video (CCC)
+
+
+
+ See ../license.html for license conditions.
+ Unbricking the ThinkPad T60
+
+ Table of Contents
+
+
+
+ Hardware requirements
+
+
+
+ Software requirements
+
+
+
+ Brick type 1: bucts not reset.
+
+
+ In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:
+
+
+ *Those dd commands should be applied to all newly compiled T60 ROM's (the ROM's in libreboot binary archives already have this applied!):
+ dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
+ dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump
+ dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc
+ (doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running,
+ using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation.
+ (it says x60, but instructions for t60 are identical)
+ bad rom (or user error), machine won't boot
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
+ Correlating with the following information, I was able to wire up my pirate correctly:
+ http://flashrom.org/Bus_Pirate#Connections
+ And by following that advice:
+ http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
+ (it says X60 but instructions are virtually the same for the T60, with except to physical differences in how to disassemble the machine)
+ Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.
+ Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the
+ AC adapter (without powering on the board).
+ Note: I ignored that advice, and wired up all 8 pins. And it worked.
+
+ Here is the pinout (correlate it with your programmer's documentation):
+
+
+
+
+
+
+
+
+ flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -w bin/t60/libreboot_usqwerty.rom
+ Note: there are also other ROM images for T60
+ Note: this is using buspirate as the programmer, so it is flashing the T60, not the 2nd computer!
+ Here's my terminal window on the 2nd computer (also the programmer is active):
+
+ So, you should see the following:
+ --
+
+ flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian
+ flashrom is free software, get the source code at http://www.flashrom.org
+
+ Calibrating delay loop... delay loop is unreliable, trying to continue OK.
+ Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi.
+ Reading old flash chip contents... done.
+ Erasing and writing flash chip... Erase/write done.
+ Verifying flash... VERIFIED.
+
+ --
+ At the end it says "VERIFIED", which means that the procedure worked. If you see this, it means
+ that you can put your T60 back together. So let's do that now.
+
+ Put those screws back:
+
+
+ Put it back into lower chassis:
+
+
+ Attach LCD and insert screws (also, attach the lcd cable to the board):
+
+
+ Insert those screws:
+
+
+ On the CPU (and there is another chip south-east to it, sorry forgot to take pic)
+ clean off the old thermal paste (rubbing a1ocheal (misspelling intentional. halal internet)) and apply new (Artic Silver 5 is good, others are good too)
+ you should also clean the heatsink the same way
+
+
+ Attach the heatsink and install the screws (also, make sure to install the AC jack as highlighted):
+
+
+ Reinstall that upper bezel:
+
+
+ Do that:
+
+
+ Re-attach modem, wifi, (wwan?), and all necessary cables. Sorry, forgot to take pics. Look at previous removal steps to see where they go back to. +
+ +
+ Attach keyboard and install nvram battery:
+
+
+ Place keyboard and (sorry, forgot to take pics) reinstall the palmrest and insert screws on the underside:
+
+
+ It lives!
+
+
+ Always stress test ('stress -c 2' and xsensors. below 90C is ok) when replacing cpu paste/heatsink:
+
+
+ Copyright © 2014 Francis Rowe, All Rights Reserved.
+ See ../license.html for license conditions.
+
Go to http://media.ccc.de/browse/congress/2013/30C3_-_5529_-_en_-_saal_2_-_201312271830_-_hardening_hardware_and_choosing_a_goodbios_-_peter_stuge.html @@ -191,13 +192,25 @@
Or go back to main index
+ +
+ You still have Lenovo BIOS, or you had libreboot running and you flashed another ROM; and you had bucts 1 set and
+ the ROM wasn't dd'd.* or if Lenovo BIOS was present and libreboot wasn't flashed.
+
+ In this case, unbricking is easy: reset BUC.TS to 0 by removing that yellow cmos coin (it's a battery) and putting it back after a minute or two:
+
+
+ *Those dd commands should be applied to all newly compiled X60 ROM's (the ROM's in libreboot binary archives already have this applied!):
+ dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k
+ dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump
+ dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc
+ (doing this makes the ROM suitable for use when flashing a machine that still has Lenovo BIOS running,
+ using those instructions: http://www.coreboot.org/Board:lenovo/x60/Installation.
+
+ In this scenario, you compiled a ROM that had an incorrect configuration, or there is an actual bug preventing your machine from + booting. Or, maybe, you set BUC.TS to 0 and shut down after first flash while Lenovo BIOS was running. In any case, your machine is bricked and will not boot at all. +
++ "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the machine, making this difficult. In this situation, external hardware (see hardware requirements above) is needed which can flash the SPI chip (where libreboot resides). +
+ ++ +
+ +
+ Remove those screws:
+
+
+ Remove the HDD:
+
+
+ Push keyboard forward to loosen it:
+
+
+ Lift:
+
+
+ Remove those:
+
+
+ + +
+ +
+ Also remove that (marked) and unroute the antenna cables:
+
+
+ Some X60T's you have to unroute those too:
+
+
+ Remove the LCD extend board screws. Also remove those screws (see blue marks) and remove/unroute the cables and remove the metal plate:
+
+
+ Remove that screw and then remove the board:
+
+
+ At this point, you should wire up your programmer according to it's documentation. For me, this was (see: "SparkFun cable pin reference"):
+ http://dangerousprototypes.com/docs/Common_Bus_Pirate_cable_pinouts.
+ Correlating with the following information, I was able to wire up my pirate correctly:
+ http://flashrom.org/Bus_Pirate#Connections
+ And by following that advice:
+ http://www.coreboot.org/Board:lenovo/x60/Installation#Howto.
+ Note: that last page says to wire up only those 5 pins (see below) like that: 1, 2, 4, 5, 6.
+ Note: and then, for power it says (on that coreboot.org page) to connect the power jack to the board and connect the
+ AC adapter (without powering on the board).
+ Note: I ignored that advice, and wired up all 8 pins. And it worked.
+
+ Here is the pinout (correlate it with your programmer's documentation):
+
+ (SPI chip here is on the bottom of the board)
+
+ Bus pirate:
+
+
+ Pomona 5250:
+
+
+ Connect pomona:
+
+
+ Connect pirate to USB on 2nd computer:
+
+
+ Pirate is active:
+
+
+ +
+ ++ On the 2nd machine, I did: flashrom -p buspirate_spi:dev=/dev/ttyUSB0 -w bin/x60t/libreboot_ukqwerty.rom +
+ ++ flashrom v0.9.5.2-r1517 on Linux 3.2.0-61-generic (i686), built with libpci 3.1.8, GCC 4.6.3, little endian + flashrom is free software, get the source code at http://www.flashrom.org + + Calibrating delay loop... delay loop is unreliable, trying to continue OK. + Found Macronix flash chip "MX25L1605" (2048 kB, SPI) on buspirate_spi. + Reading old flash chip contents... done. + Erasing and writing flash chip... Erase/write done. + Verifying flash... VERIFIED. ++ +
+ At the end it says "VERIFIED", which means that the procedure worked. If you see this, it means that you can put your X60T back together. So let's do that now. +
+ ++ Reverse the steps to re-assemble your machine. +
+ +
+ Copyright © 2014 Francis Rowe, All Rights Reserved.
+ See ../license.html for license conditions.
+